Javascript 是否可以将文本框作为单选按钮值的一部分?
第一次。请不要打我 我有一个可笑的要求 我们有一组从SQLServer数据库动态生成的单选按钮 例如,有一个问题表,其中一列是ChoiceType ChoiceType有3个值,S表示单个选项(单选按钮);M表示多个选项(复选框);T代表文本框 以下是标记: 然后是代码隐藏片段Javascript 是否可以将文本框作为单选按钮值的一部分?,javascript,jquery,asp.net,vb.net,Javascript,Jquery,Asp.net,Vb.net,第一次。请不要打我 我有一个可笑的要求 我们有一组从SQLServer数据库动态生成的单选按钮 例如,有一个问题表,其中一列是ChoiceType ChoiceType有3个值,S表示单个选项(单选按钮);M表示多个选项(复选框);T代表文本框 以下是标记: 然后是代码隐藏片段 <tr> <td> <asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonL
<tr>
<td>
<asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList>
<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>
<asp:TextBox ID="TextBox1" runat="server" Columns="30" Font-Bold="False" Rows="5"
TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim anstype As HiddenField = e.Item.FindControl("HiddenField1")
'Dim questionid As Label = e.Item.FindControl("Label3")
Dim questionid As HiddenField = e.Item.FindControl("HiddenField2")
Dim rbl As RadioButtonList = e.Item.FindControl("RadioButtonList1")
Dim cbl As CheckBoxList = e.Item.FindControl("CheckBoxList1")
Dim txt As TextBox = e.Item.FindControl("TextBox1")
Dim ds As DataSet = GetDataSet(questionid.Value)
Select Case anstype.Value
Case "S"
rbl.Visible = True
cbl.Visible = False
txt.Visible = False
rbl.DataSource = ds
rbl.DataTextField = "Choice"
rbl.DataValueField = "ChoiceID"
rbl.DataBind()
Case "M"
rbl.Visible = False
cbl.Visible = True
txt.Visible = False
cbl.DataSource = ds
cbl.DataTextField = "Choice"
cbl.DataValueField = "ChoiceID"
cbl.DataBind()
Case "T"
rbl.Visible = False
cbl.Visible = False
txt.Visible = True
End Select
End If
End Sub
受保护的子DataList1_ItemDataBound(ByVal sender作为对象,ByVal e作为System.Web.UI.WebControl.DataListItemEventArgs)处理DataList1.ItemDataBound
如果e.Item.ItemType=ListItemType.Item或e.Item.ItemType=ListItemType.AlternatingItem,则
Dim anstype As HiddenField=e.Item.FindControl(“HiddenField1”)
'Dim questionid As Label=e.Item.FindControl(“Label3”)
Dim questionid作为HiddenField=e.Item.FindControl(“HiddenField2”)
作为RadioButtonList的Dim rbl=e.Item.FindControl(“RadioButtonList1”)
Dim cbl As CheckBoxList=e.Item.FindControl(“CheckBoxList1”)
文本框为文本框的Dim txt=e.Item.FindControl(“文本框1”)
Dim ds As DataSet=GetDataSet(questionid.Value)
选择Case anstype.Value
案例“S”
rbl.Visible=True
cbl.Visible=False
txt.Visible=False
rbl.DataSource=ds
rbl.DataTextField=“选择”
rbl.DataValueField=“ChoiceID”
rbl.DataBind()
案例“M”
rbl.Visible=False
cbl.Visible=True
txt.Visible=False
cbl.DataSource=ds
cbl.DataTextField=“选择”
cbl.DataValueField=“ChoiceID”
cbl.DataBind()
案例“T”
rbl.Visible=False
cbl.Visible=False
txt.Visible=True
结束选择
如果结束
端接头
我的问题:是否可以将文本框(T)显示为RadiobuttonList选项的一部分,以便用户只需使用带有文本框值的单选按钮选中文本框,然后在文本框中输入一些文本
下面是一个截图,希望能说明我的观点
对不起,现在可以发布图片了
谢谢你的耐心。这是你需要的
我假设您正在使用datalist
<ItemTemplate>
<table>
<tr>
<td>
<asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList>
<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>
<asp:TextBox ID="TextBox1" runat="server" Columns="30" Font-Bold="False" Rows="5"
TextMode="MultiLine"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TextBoxOptional" runat="server" Visible="false" Columns="30" Font-Bold="False" Rows="5" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
</table>
</ItemTemplate>
如果radiobutton的所选文本为“其他”,则在CheckedChanged事件中将一个文本框设置为visible false和on radiobutton,然后将文本框设置为visible True 试试这个
Protected Sub RadioButton1_OnCheckedChanged(sender As Object, e As EventArgs)
Dim RadioButton1 As RadioButton = TryCast(sender, RadioButton)
Dim datalistrow As DataList = TryCast(RadioButton1.NamingContainer, DataList)
Dim TxtOther As TextBox = TryCast(datalistrow.FindControl("TxtOther"), TextBox)
TxtOther.Visible = True
End Sub
<tr>
<td>
<asp:RadioButtonList ID="RadioButtonList1" runat="server"></asp:RadioButtonList>
<asp:CheckBoxList ID="CheckBoxList1" runat="server"></asp:CheckBoxList>
<asp:TextBox ID="TextBox1" runat="server" Columns="30" Font-Bold="False" Rows="5"
TextMode="MultiLine"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="TxtOther" runat="server" Visible="False" Columns="30" Font-Bold="False" Rows="5"
TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim anstype As HiddenField = e.Item.FindControl("HiddenField1")
'Dim questionid As Label = e.Item.FindControl("Label3")
Dim questionid As HiddenField = e.Item.FindControl("HiddenField2")
Dim rbl As RadioButtonList = e.Item.FindControl("RadioButtonList1")
Dim cbl As CheckBoxList = e.Item.FindControl("CheckBoxList1")
Dim txt As TextBox = e.Item.FindControl("TextBox1")
Dim ds As DataSet = GetDataSet(questionid.Value)
Select Case anstype.Value
Case "S"
rbl.Visible = True
cbl.Visible = False
txt.Visible = False
rbl.DataSource = ds
rbl.DataTextField = "Choice"
rbl.DataValueField = "ChoiceID"
rbl.DataBind()
Case "M"
rbl.Visible = False
cbl.Visible = True
txt.Visible = False
cbl.DataSource = ds
cbl.DataTextField = "Choice"
cbl.DataValueField = "ChoiceID"
cbl.DataBind()
Case "T"
rbl.Visible = False
cbl.Visible = False
txt.Visible = True
End Select
End If
End Sub
检查更改后受保护的子RadioButton1_(发送方作为对象,e作为事件参数)
变暗RadioButton1为RadioButton=TryCast(发送方,RadioButton)
Dim datalistrow As DataList=TryCast(RadioButton1.NamingContainer,数据列表)
Dim TxtOther As TextBox=TryCast(datalistrow.FindControl(“TxtOther”),TextBox)
TxtOther.Visible=True
端接头
受保护的子DataList1_ItemDataBound(ByVal sender作为对象,ByVal e作为System.Web.UI.WebControl.DataListItemEventArgs)处理DataList1.ItemDataBound
如果e.Item.ItemType=ListItemType.Item或e.Item.ItemType=ListItemType.AlternatingItem,则
Dim anstype As HiddenField=e.Item.FindControl(“HiddenField1”)
'Dim questionid As Label=e.Item.FindControl(“Label3”)
Dim questionid作为HiddenField=e.Item.FindControl(“HiddenField2”)
作为RadioButtonList的Dim rbl=e.Item.FindControl(“RadioButtonList1”)
Dim cbl As CheckBoxList=e.Item.FindControl(“CheckBoxList1”)
文本框为文本框的Dim txt=e.Item.FindControl(“文本框1”)
Dim ds As DataSet=GetDataSet(questionid.Value)
选择Case anstype.Value
案例“S”
rbl.Visible=True
cbl.Visible=False
txt.Visible=False
rbl.DataSource=ds
rbl.DataTextField=“选择”
rbl.DataValueField=“ChoiceID”
rbl.DataBind()
案例“M”
rbl.Visible=False
cbl.Visible=True
txt.Visible=False
cbl.DataSource=ds
cbl.DataTextField=“选择”
cbl.DataValueField=“ChoiceID”
cbl.DataBind()
案例“T”
rbl.Visible=False
cbl.Visible=False
txt.Visible=True
结束选择
如果结束
端接头
您可以这样检查
Protected Sub RadioButton1_OnCheckedChanged(sender As Object, e As EventArgs)
Dim RadioButton1 As RadioButtonList = TryCast(sender, RadioButtonList)
If RadioButton1 IsNot Nothing Then
If RadioButton1.SelectedValue = "Other" Then
Dim datalistrow As DataList = TryCast(RadioButton1.NamingContainer, DataList)
Dim TxtOther As TextBox = TryCast(datalistrow.FindControl("TxtOther"), TextBox)
TxtOther.Visible = True
End If
End If
End Sub
先生,你能给我举个例子说明你的建议是怎样做的吗?回想一下,我说过这些是从数据库中动态生成的。我知道如何创建用户控件。我只是不确定这一切如何符合我正在努力做的事情。对不起,我理解得太慢了。我想把它和我发布的itemDataBound sub集成起来。听起来你很清楚需要做什么。先生,我非常希望能举个例子。非常感谢。Tairoc,你能不能把你的问题说清楚一点,你到底想做什么。@Kapil,假设我们有5个单选按钮值,一个通过广告称为
;另一个被朋友称为;另一个叫做搜索引擎
。最后一个称为Other
。这个名为Other
的应该有一个文本框。也就是说,其他以及文本框为其他输入值。Omarkashmiri,对不起,先生,我错漏了这一点。此外,我将您的文本框放在S中,因为S代表单选按钮。很好的代码,但它在哪里检查单选按钮选择是否为Other
?加载数据列表时,如果选择的单选按钮选项为“Other”,您想显示TXTORther文本框,或者在加载数据列表后,将radiobutton更改为“Other”您将从中获得Radiobutton的选择值“Other”,以便在解决方案执行的RowDatabound事件中进行比较
Protected Sub RadioButton1_OnCheckedChanged(sender As Object, e As EventArgs)
Dim RadioButton1 As RadioButtonList = TryCast(sender, RadioButtonList)
If RadioButton1 IsNot Nothing Then
If RadioButton1.SelectedValue = "Other" Then
Dim datalistrow As DataList = TryCast(RadioButton1.NamingContainer, DataList)
Dim TxtOther As TextBox = TryCast(datalistrow.FindControl("TxtOther"), TextBox)
TxtOther.Visible = True
End If
End If
End Sub