我有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")
但同样的问题。
答案 0 :(得分:0)
我会尝试这些。
在OnLoad的事件处理程序中,您只需为下拉列表添加另一个选项。
foreach (string s in ArrayOfPreviouslyAddedValues){
ddl.Items.Add(new ListItem(s, s));
}
另一种选择是将所有选项的所有值存储在某些后台源(数据库或任何内容)中,并以编程方式将数据值存储到下拉列表中。
这是C#,但你明白了这一点。