Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以将文本框作为单选按钮值的一部分?_Javascript_Jquery_Asp.net_Vb.net - Fatal编程技术网

Javascript 是否可以将文本框作为单选按钮值的一部分?

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

第一次。请不要打我

我有一个可笑的要求

我们有一组从SQLServer数据库动态生成的单选按钮

例如,有一个问题表,其中一列是ChoiceType

ChoiceType有3个值,S表示单个选项(单选按钮);M表示多个选项(复选框);T代表文本框

以下是标记:

然后是代码隐藏片段

<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