asp .net c#中的复选框有问题吗?

时间:2011-07-18 15:29:49

标签: c# asp.net checkbox

aspx页面上的控件是这样的                                                提交     提交日期                                                                                                              

我想,如果选中复选框,则会启用文本框我写

  if(chkSubmitted.Checked)
        {
            txtSubmissionDate.Enabled = true;
        }

在页面加载事件中。但是当加载页面时,此复选框不起作用。怎么回事?

4 个答案:

答案 0 :(得分:1)

如果您想要点击复选框以启用文本框,则需要通过设置AutoPostBack="True"来检查复选框时进行回发:

<asp:CheckBox runat="server" ID="chkSubmitted" AutoPostBack="True" />

或者,您可以使用JavaScript:

<asp:CheckBox runat="server" ID="chkSubmitted" onclick="setSubmissionDateEnabled()" />

function setSubmissionDateEnabled()
{
    var chkSubmitted = document.getElementById("<%= chkSubmitted.ClientID %>");
    var txtSubmissionDate = document.getElementById("<%= txtSubmissionDate.ClientID %>");
    txtSubmissionDate.disabled = !chkSubmitted.checked;
}

答案 1 :(得分:1)

首先将autopostback属性设置为复选框的true

在checkbox_Selectedindexchanged事件

中编写以下代码
if(chkSubmitted.Checked)
{             
txtSubmissionDate.Enabled = true;  
} 
else
{
txtSubmissionDate.Enabled = false;
}

答案 2 :(得分:0)

这很可能是因为已经启用了txtSubmissionDate的默认状态。

page_load

中试试这个
txtSubmissionDate.enabled = !chkSubmitted.Checked

为了澄清,当复选框是。

时,不应该启用文本框(!)

答案 3 :(得分:0)

将此信息放入Page_PreRender事件中。在此阶段,它将捕获用户受影响的chkSubmitted状态。