0

リピーター コントロールにフィードする 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 に精通していません。誰でもポインタを持っていますか?

前もって感謝します!

4

1 に答える 1

2

次のようにロードします。

myThickness.XPath = "/Item[@label='" + tvwMaterials.SelectedNode.Text + "']/Thickness/Thick";
myThickness.DataBind();

データソースパスは、xmlドキュメントの繰り返し要素を参照する必要があります。

<ItemTemplate>
    <table>
        <tr>
            <td><asp:Label ID="lblThickness" runat="server" Text="Thickness: " />
            <asp:TextBox ID="txtThickness" runat="server" Text='<%# XPath("Size") %>' />
        </tr><tr>
            <td><asp:Label ID="Label2" runat="server" Text="From: " />
            <asp:TextBox ID="TextBox1" runat="server" Text='<%# XPath("From") %>' />

         /tr>
    </table>
</ItemTemplate>
于 2012-08-29T06:04:28.130 に答える