0

各 TextBox の値を読み取ろうとしていますが、「TextBox2」は遅れていませんというエラーが表示されます。保護レベルにより、アクセスできない場合があります。

前のコード:

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button1" />

<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
    <Columns>
        <asp:TemplateField HeaderText="equipment_note" SortExpression="equipment_note">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <EmptyDataTemplate>
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
        <asp:Button ID="Button3" runat="server" Text="Button2" />
    </EmptyDataTemplate>
</asp:GridView>

さらに単純なコード ビハインド:

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
    Dim strTextBoxValue1 As String = TextBox1.Text
    Dim strTextBoxValue2 As String = TextBox2.Text
    Dim strTextBoxValue3 As String = TextBox3.Text
    Response.Write(strTextBoxValue1)
End Sub

「Dim strTextBoxValue1 As」などの行は正常に機能しますが、value2 と value3 は両方とも宣言されていないという同じエラーを表示します。

コードビハインドで TextBox2 と TextBox3 から値を読み取る/取得するにはどうすればよいですか?

4

3 に答える 3

1

行ごとに1つのテキストボックスがあるため、それを行うことはできません。行をループして、それぞれの値を取得する必要があります。

Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click

        For Each row As GridViewRow In GridView1.Rows
    strTextBoxValue2 = CType(row.FindControl("TextBox2"), TextBox).Text
        Next

    End Sub
于 2013-10-10T15:36:41.133 に答える
0

Adilが言ったように、最初にコントロールを見つける必要があり、次に値を何かに転送できます。例:

For i As Integer = 0 To GridView1.Rows.Count - 1
        Dim row As GridViewRow = GridView1.Rows(i)
        Dim strTextBoxValue2 as string = CType(row.Cells(0).FindControl("TextBox2"), Textbox).Text
Next
于 2013-10-10T15:30:50.023 に答える