我试图解决嵌套转发器中未进行处理的控件问题。
首先,让我来说明一下我的情景。我的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;节点甚至不存在。
我无法找到解释如何解决此问题的任何内容。有没有人有任何见解?
答案 0 :(得分:0)
我觉得自己像个白痴。
事实证明我的代码没有任何问题。
未处理子节点,因为未呈现中继器。如果节点没有任何值,我的代码包含隐藏代码的逻辑(并且随后不处理转发器)。
然而,我在这里保留这个问题而不是删除它以供将来参考。
很抱歉浪费每个人的带宽 - 我们现在会将您转到定期发送的垃圾邮件。