MultiView不能包含'GridView'类型的子控件。它只能包含'View'类型的子控件。

5

I have the following asp.net code

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不能拥有“GridView”类型的子级。它只能拥有“View”类型的子级。
我已经折叠了Multiview代码,它唯一拥有的两个子级是视图。它是因为视图的内容而在抱怨吗?否则,这几乎是无用的。
我该如何解决这个问题?

1
我使用了相同的代码,但它对我有效。没有错误! - Nimmi
3个回答

9
我遇到了同样的错误,但是在我的情况下,我忘记在View控件中设置runat="server"。如果没有包含runat="server",那么该控件在后端根本不存在。希望这可以帮到你。

3

这个错误意味着你的视图标签外有些东西。也就是说,你在multiview标签中直接放了一个asp元素(而不是放在view标签中)。

确保你没有在multiview标签外部放置gridview。


0

我最初也遇到了同样的错误,但在删除先前的视图并重新替换视图后,它对我正常工作了。

以下是相应的简单MultiView

<asp:MultiView ID="MultiView1" runat="server">
    <asp:View ID="View1" runat="server">
                 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </asp:View>
        </asp:MultiView>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接