MultiView不能有'GridView'类型的子节点。它只能有View类型的子项

时间:2014-02-04 10:44:17

标签: c# asp.net multiview

我有以下asp.net代码

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代码,它拥有的唯一两个孩子就是视图。是否因为视图的内容而抱怨?因为否则会使它几乎完全没用。

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:6)

我收到了确切的错误,但就我而言,我忘了在View控件中设置runat="server"

如果一个人不包含runat="server",则该控制只是不存在后端。我希望这会有所帮助。

答案 1 :(得分:3)

此错误表示您的视图标记之外有其他内容。 即您在multiview标记中直接使用了asp元素(视图除外),而不是在视图标记中。

确保在视图标记之外的多视图中没有gridview。

答案 2 :(得分:0)

最初我遇到相同的错误,但是在删除上一个视图并再次替换视图后,它对我来说正常工作

下面是相同的简单MultiView

UPDATE
  table
SET
  col00 = CASE WHEN col00 = -1 THEN -999 ELSE col00 END,
  col01 = CASE WHEN col01 = -1 THEN -999 ELSE col01 END,
  col02 = CASE WHEN col02 = -1 THEN -999 ELSE col02 END,
  ...
  col37 = CASE WHEN col37 = -1 THEN -999 ELSE col37 END,
  col38 = CASE WHEN col38 = -1 THEN -999 ELSE col38 END,
  col39 = CASE WHEN col39 = -1 THEN -999 ELSE col39 END
WHERE
  -1 IN (col00, col01, col02, ... col37, col38, col39)