2014-02-04 7 views
3

Я следующий код asp.netMultiView не может иметь детей типа «GridView». Он может иметь детей только типа View

asp:MultiView runat="server" ID="mvPaymentsOnProperty" ActiveViewIndex="0"> 
    <asp:View runat="server" ID="vPaymentsMadeOnProperty"> 
     <br /> 
     <asp:GridView runat="server" ID="gvPaymentsMadeOnProperty" AutoGenerateColumns="false" EmptyDataText="bla bla"> 
      <Columns> 
       <asp:BoundField HeaderText="bla" DataField="bla" /> 
       <asp:BoundField HeaderText="foo" DataField="bar" /> 
      </Columns> 
     </asp:GridView> 
    </asp:View> 
    <asp:View runat="server" ID="vNoPaymentsMadeOnProperty"> 
     Some sort of error 
    </asp:View> 

</asp:MultiView> 

При попытке загрузить страницу, я получаю следующую ошибку

MultiView не может иметь детей типа 'Вид сетки'. Он может иметь только детей типа View.

Я разрушил код Multiview, и у него есть только два дочерних объекта. Жалуется ли это из-за содержания представления? Потому что в противном случае это почти полностью бесполезно.

Как исправить это?

+1

Я использовал тот же код, но он работает для меня. Нет ошибки! – Nimmi

ответ

5

Я получал точную ошибку, но в моем случае я забыл установить runat="server" в элементе управления View.

Если один не содержит runat="server", тогда этот контроль просто не существует для бэкэнд. Надеюсь, это поможет.

2

Эта ошибка означает, что у вас есть что-то вне вашего тега. I.e. у вас есть элемент asp (кроме представления) в теге multiview напрямую, а не в теге view.

Удостоверьтесь, что у вас нет gridview в мультивижете вне тега вида.