-3

我有一个调查风格的网页,其中包含一系列“是/否”复选框,最后有一个提交按钮。选择box1时,我想取消选中box2。

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {

        if (CheckBox1.Checked == true)
        {
          CheckBox2.Enable = false;
        }
    }

    public void Submit_Click(object sender, EventArgs e)
    {

    //Question1 - Checkbox1

        if (CheckBox1.Checked == true)
        {

            SqlConnection con = new SqlConnection("");
            String sql = "UPDATE INQUIRY2 set Question1 = @str WHERE email = @email AND base = @base;";
            ...
        }
4

1 回答 1

2

这里有几点需要注意...

  • 在 ASP.NET 环境中,在回发完成之前不会触发 Checkbox 的 CheckChanged 事件;
  • 其次,您可能希望使用 RadioButtonList 来管理此行为(尽管不一定)。

在第一种情况下,也就是说,您不能期望事件在复选框状态发生更改后立即触发,只有在提交表单时才会触发,无论是自动使用AutoPostBack还是手动使用Button.

在第二种情况下,如果这些项目被归类在一个组中,单选按钮将很有用,但如果它们只是在不相关的表单上互斥值,则单选按钮将很有用。唉,我们也许可以判断您是否给控件赋予了有意义的名称。

无论如何,这里还有其他一些事情。您不需要在条件中明确声明可比较的布尔值 - 鉴于该属性的命名有些恰当,它说明了它是什么if (CheckBox.Checked) { }。另外,SqlConnection这是一次性的东西,从您的示例中不清楚您是否正确关闭或处置实例,所以我会检查您是否这样做。

于 2013-08-27T15:36:05.613 回答