1

2 つのテキスト ボックス コントロールとリンク コントロールで構成される空のデータテンプレート コントロールを介して、xml ファイルにデータを挿入しようとしています。

...デザイン:

<emptydatatemplate>
 No Data Found. <br /> 
 <asp:TextBox ID="txtAltprodID" runat="server"></asp:TextBox><br />
 <asp:TextBox ID="txtAltprodNum" runat="server"></asp:TextBox><br />
 <asp:LinkButton ID="lnkpro" runat="server" OnClick="writeProductInfo" Text="Add Product Number"></asp:LinkButton>
</emptydatatemplate>

テキスト ボックス コントロールによって送信された入力は、次の XML ファイルの製品テーブル内に配置されます。

<PersonalData>
  <products>
    <product>
      <productID>2</productID>
      <productNumber>123744</productNumber>
    </product>
    <product>
      <productID>7</productID>
      <productNumber>123456</productNumber>
    </product>
  </products>
  <customers>
    <customer>
      <LastName>Doe</LastName>
      <FirstName>Sam</FirstName>
      <Address>1234 Crescent RD</Address>
      <City>San Antonio</City>
      <State>Texas</State>
      <ZipCode>67894</ZipCode>
    </customer>
  </customers>
</PersonalData>

[製品情報を追加] リンク用に次のイベント ハンドラーを作成しました。

Public Sub writeProductInfo(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim altprodID As String = DirectCast(gvProductNumber.EmptyDataTemplate.FindControl("txtAltprodID"), TextBox).Text
        Dim altprodNum As String = DirectCast(gvProductNumber.EmptyDataTemplate.FindControl("txtAltprodNum"), TextBox).Text
        BindGridView()
        Dim oDs As DataSet = gvProductNumber.DataSource
        Dim oDr As DataRow = oDs.Tables(0).NewRow
        oDr("productID") = altprodID
        oDr("productNumber") = altprodNum
        oDs.Tables(0).Rows.Add(oDr)
        oDs.WriteXml(Request.PhysicalApplicationPath + "~/xml/PersonDataVI.xml")
        BindGridView()
    End Sub

...しかし、私の構文には問題があります:

Dim altprodID As String = DirectCast(gvProductNumber.EmptyDataTemplate.FindControl("txtAltprodID"), TextBox).Text
            Dim altprodNum As String = DirectCast(gvProductNumber.EmptyDataTemplate.FindControl("txtAltprodNum"), TextBox).Text

...上記の 2 行を設定して、空のデータ テンプレートからテキスト ボックス コントロールの ID を読み取る方法を教えてください。ありがとうございました

4

1 に答える 1

0

ID の取得方法は次のとおりです。

 Public Sub writeProductInfo(ByVal sender As System.Object, ByVal e As System.EventArgs)
        'BindGridView()
        Dim productID As String = DirectCast(gvProductNumber.Controls(0).Controls(0).FindControl("txtAltprodID"), TextBox).Text
        Dim productNumber As String = DirectCast(gvProductNumber.Controls(0).Controls(0).FindControl("txtAltprodNum"), TextBox).Text
        Dim oDs As New DataSet()
        oDs.ReadXml(Server.MapPath("~/xml/PersonDataVI.xml"))
        oDs.Tables.Add("product")
        oDs.Tables("product").Columns.Add("productID")
        oDs.Tables("product").Columns.Add("productNumber")
        Dim oDr As DataRow = oDs.Tables("product").NewRow
        oDr("productID") = productID
        oDr("productNumber") = productNumber
        oDs.Tables("product").Rows.Add(oDr)

        oDs.WriteXml(Server.MapPath("~/xml/PersonDataVI.xml"))
        BindGridView()
    End Sub
于 2013-08-18T23:00:51.930 に答える