リピーター コントロールにフィードする XML DataSource があります。ただし、実際のデータを表示するにはいくつか問題があります。
XML DataSource には、価格、サイズ、および寸法データとともに、材料の厚さのリスト (より大きな XML ファイルから取得) が含まれています。
<Thickness>
<Thick>
<Size label="Thickness: 12"><![CDATA[12]]></Size>
<Price>5778</Price>
<From>0</From>
<To>0</To>
</Thick>
<Thick>
<Size label="Thickness: 22"><![CDATA[22]]></Size>
<Price>5919</Price>
<From>0</From>
<To>0</To>
</Thick>
...
</Thickness>
次のコードで DataSource をロードします。
myThickness.XPath = "/Item[@label='" + tvwMaterials.SelectedNode.Text + "']/Thickness/*";
myThickness.DataBind();
(他の XPath のものは、Thickness のものに到達するためのものです)。次に、それをリピーター (XML DataSource にデータバインドされている) にロードし、次のコードを使用して表示しようとします。
<ItemTemplate>
<table>
<tr>
<td><asp:Label ID="lblThickness" runat="server" Text="Thickness: " />
<asp:TextBox ID="txtThickness" runat="server" Text='<%# XPath("Thick/Size") %>' />
</tr><tr>
<td><asp:Label ID="Label2" runat="server" Text="From: " />
<asp:TextBox ID="TextBox1" runat="server" Text='<%# XPath("Thick/From") %>' />
/tr>
</table>
</ItemTemplate>
これにより、コントロールの数が正しく読み込まれますが、コントロールにはデータが表示されません。読み込みイベントの xPAth を次のように変更すると:
myThickness.XPath = "/Item[@label='" + tvwMaterials.SelectedNode.Text + "']/Thickness";
その後、コントロールはデータを表示しますが、最初のレコード (12 と 0) のみです。/* の後ろの Thickness が必要かどうか、また必要な場合は、リピーターで xPAth を構成して値を読み取る方法を理解するには、まだ xPAth に精通していません。誰でもポインタを持っていますか?
前もって感謝します!