未处理嵌套转发器项目中的控件

时间:2014-03-20 18:39:04

标签: asp.net xml repeater code-behind nested-repeater

我试图解决嵌套转发器中未进行处理的控件问题。

首先,让我来说明一下我的情景。我的XML看起来像这样:

<ParentNode>
    <SubNode>
        <SomeNode></SomeNode>
        <SomeNode></SomeNode>
        <SomeNode></SomeNode>
    </SubNode>
    <SubNode>
        <SomeNode></SomeNode>
        <SomeNode></SomeNode>
        <SomeNode></SomeNode>
    </SubNode>
    <SubNode>
        <SomeNode></SomeNode>
        <SomeNode></SomeNode>
        <SomeNode></SomeNode>
    </SubNode>
</ParentNode>

为了处理这个问题,我有嵌套的转发器,如下所示:

<!-- note: XPath for DataSource = "/ParentNode/SubNode" -->
<asp:Repeater ID="ProcessSubNode" runat="server">
    <ItemTemplate>
        <!-- note: XPath for DataSource = "/ParentNode/SubNode/SomeNode" -->
        <asp:Repeater ID=ProcessSomeNode" runat="server">
            <ItemTemplate>
                <!-- some miscellaneous web forms code goes here -->
            </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

我有代码隐藏处理来保存我的数据,如下所示:

Protected Sub OnSave()
    For Each itemSubNode As RepeaterItem In Me.ProcessSubNode.Items
        For Each itemSomeNode As RepeaterItem In CType(itemSubNode.FindControl("ProcessSomeNode"), Repeater).Items
            ' some processing code goes here
        Next
    Next
End Sub

这是我的问题:上面说明的我的OnSave代码在第一次通过第一个&lt; SubNode&gt;时工作得很好。节点(它处理所有&lt; SomeNode&gt;节点没有问题)。

然而,在其下一次传递第二个(及后续)&lt; SubNode&gt;组时节点,它看到&lt; SomeNode&gt;其中的节点 at all 。 For Each循环跳到下一个&lt; SubNode&gt;好像&lt; SubNode&gt;节点甚至不存在。

我无法找到解释如何解决此问题的任何内容。有没有人有任何见解?

1 个答案:

答案 0 :(得分:0)

我觉得自己像个白痴。

事实证明我的代码没有任何问题。

未处理子节点,因为未呈现中继器。如果节点没有任何值,我的代码包含隐藏代码的逻辑(并且随后不处理转发器)。

然而,我在这里保留这个问题而不是删除它以供将来参考。

很抱歉浪费每个人的带宽 - 我们现在会将您转到定期发送的垃圾邮件。