我有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
和 insert 作为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")
但同样的问题。