0
我陷入了一個問題。我想我可能接近解決方案,但似乎無法達到目標。我有一個XMLDoc從存儲的Proc加載到數據集中,並從中取出XML(不要以爲我可以改變這部分)。 XML看起來像這樣:使用XMLNodeList的嵌套中繼器
<data>
<datanode>
<name>11</name>
<group>G1</group>
<value>val1</value>
</datanode>
<datanode>
<name>12</name>
<group>G1</group>
<value>val2</value>
</datanode>
<datanode>
<name>21</name>
<group>G2</group>
<value>val1</value>
</datanode>
<datanode>
<name>22</name>
<group>G2</group>
<value>val2</value>
</datanode>
<datanode>
<name>23</name>
<group>G2</group>
<value>val3</value>
</datanode>
<datanode>
<name>31</name>
<group>G3</group>
<value>val1</value>
</datanode>
<datanode>
<name>32</name>
<group>G3</group>
<value>val2</value>
</datanode>
<datanode>
<name>33</name>
<group>G3</group>
<value>val3</value>
</datanode>
<datanode>
<name>34</name>
<group>G3</group>
<value>val4</value>
</datanode>
</data>
我需要使用嵌套中繼器來顯示此信息。我想要的是按「組」節點對其進行分組,然後顯示屬於該「組」節點的每個「datanodes」。因此,這將是這個樣子的網頁上:
G1 - has 2 nodes
11 - Val1
12 - Val2
G2 - has 3 nodes
21 - Val1
22 - Val2
23 - Val3
etc
我到目前爲止有: Default.aspx的:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<p>
COUNT: <asp:Literal runat="server" ID="Literal3" Text='<%# XPath("count(group)") %>' />
<br />Text: <asp:Literal runat="server" ID="Literal4" Text='<%# XPath("text()") %>' />
<br />Group: <asp:Literal runat="server" ID="Literal2" Text='<%# XPath("group") %>' />
<br />ID: <asp:Literal runat="server" ID="displayname" Text='<%# XPath("name") %>' />
<br />VAL: <asp:Literal runat="server" ID="Literal1" Text='<%# XPath("value") %>' />
</p>
</ItemTemplate>
</asp:Repeater>
Default.aspx.cs
public partial class _Default : System.Web.UI.Page
{
private XmlNodeList nodelist;
protected void Page_Load(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\development\testforWork\WebApplication1\WebApplication1\data.xml");
nodelist = doc.SelectNodes("//datanode[not(group=preceding-sibling::datanode/group)]/group");
//nodelist = doc.SelectNodes("//datanode[group='G2']");
Repeater1.DataSource = nodelist;
Repeater1.DataBind();
}
}
我可以讓他們一個接一個地顯示每個datanode,但我無法弄清楚如何嵌套中繼器並進行分組。我對XPath和中繼器比較陌生,認爲我必須在我的知識中有一些缺口,並且不能將點連接起來(除非我完全按照錯誤的方向行進)。
感謝
作品找我 – 2017-09-20 05:11:32
行:'> 可以更容易: '> –
2017-09-20 06:04:49