【问题标题】:Enable text box based on radio button selected根据选中的单选按钮启用文本框
【发布时间】:2012-04-12 21:05:25
【问题描述】:

我有一个单选按钮列表,其中列出了不同的业务类别。最后一个选项是Other 类别。当用户选择Other 类别时,我希望能够启用一个文本框,然后用户可以输入更多信息来解释Other 选择。

目前,我正在尝试

    If rblCategory.SelectedIndex = 20 Then
        txtOther.Enabled = True
        lblOther.Text = rblCategory.SelectedItem.Text()
    End If

在这段摘录中,我将它基于索引,但我也尝试将它基于 Text 字段以及 Value 字段,但我仍然没有让它工作。有什么建议吗?

【问题讨论】:

  • 单步调试调试器会发生什么?
  • 没什么。断点也不起作用。
  • @SouthShoreAK 我需要做些什么来“重新加载”表单以显示更改吗?
  • 如果你的断点没有被命中,这是一个很好的线索,表明更大的事情是错误的。您正在使用的所有控件是否都具有 ViewStateEnabled=true?对于单选按钮列表,我认为您可能需要设置 CausesValidation=true 和 AutoPostBack=true。某些控件默认情况下不会回发,我认为这可能是其中之一。
  • @SouthShoreAK 就是这样!谢谢。

标签: asp.net vb.net visual-studio


【解决方案1】:

如果你的断点没有被命中,这是一个很好的线索,表明更大的事情是错误的。您使用的所有控件是否都具有 ViewStateEnabled=true?对于单选按钮列表,我认为您可能需要设置 CausesValidation=true 和 AutoPostBack=true。某些控件默认情况下不会回发,我认为这可能是其中之一。

【讨论】:

    【解决方案2】:

    您可以通过简单地挂钩最后一个单选按钮的 OnCheckChanged 事件来简化此操作。

    Private Sub OtherRadioButton_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles OtherRadioButton.CheckedChanged
        Dim r As RadioButton = CType(sender, RadioButton)
    
        txtOther.Enabled     = r.Checked
        lblOther.Text        = r.Text
    End Sub
    

    【讨论】:

    • 原来我没有 ViewStateEnabled=true、CausesValidation=true 和 AutoPostBack=true
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 2017-02-05
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多