私は持っていますGridView
DropDownList
:
<asp:TemplateField HeaderText="Employer">
<ItemTemplate>
<asp:DropDownList ID="txtEmployer" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="SelectedIndexChanged">
<asp:ListItem>Select</asp:ListItem>
<asp:ListItem Value="AllScripts">AllScripts</asp:ListItem>
<asp:ListItem Value="Contractor">Contractor</asp:ListItem>
<asp:ListItem Value="Other">Other</asp:ListItem>
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server"
ControlToValidate="txtEmployer" ErrorMessage="*"
InitialValue="Select"></asp:RequiredFieldValidator>
</ItemTemplate>
</asp:TemplateField>
そしてTextBox
:
<asp:TemplateField HeaderText="Other">
<ItemTemplate>
<asp:TextBox ID="txtOther" runat="server" TabIndex="435"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server"
ControlToValidate="txtOther" ErrorMessage="*"
SetFocusOnError="True"></asp:RequiredFieldValidator>
</ItemTemplate>
</asp:TemplateField>
はTexBox
、デフォルトで非表示になっていPageLoad
ます。
ユーザーが「その他」オプションを選択すると、TextBox
が表示され、ユーザーは任意の値を入力できるようになります。これはこれまでのところうまくいきます。
の値を正常に収集DropDownList
し、データベースに正常に挿入できます。
txtOther
TextBox
ただし、 の値を挿入し、 の一部として挿入する方法を理解しようとしていDropDownList
ます。うまくいけば、この最後の文は理にかなっています。
私は次のことを試しました:
Dim table As DataTable = TryCast(ViewState("CurrentTable"), DataTable)
If table IsNot Nothing Then
For Each row As DataRow In table.Rows
Dim txLName As String = TryCast(row.ItemArray(1), String)
Dim txName As String = TryCast(row.ItemArray(2), String)
Dim txEmail As String = TryCast(row.ItemArray(3), String)
Dim txRole As String = TryCast(row.ItemArray(4), String)
Dim txPhone As String = TryCast(row.ItemArray(5), String)
Dim drpEmpl As String = TryCast(row.ItemArray(6), String)
If drpEmpl = "Other" Then
drpEmpl = txtOther.Text
Else
drpEmpl = TryCast(row.ItemArray(6), String)
End If
宣言されていないエラーが発生し、txtOther.Text
アクセスできない可能性があります。
drpEmpl
の名前ですDropDownList
。
私が試してみました:
drpEmpl = gridview1.FindControl("txtOther")
しかし、同じ問題。