在asp.net c#中的复选框问题

本文关键字:复选框 问题 asp net | 更新日期: 2023-09-27 18:02:20

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

我想,如果复选框被选中,那么文本框将被启用我写了

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

在页面加载事件中。但是当页面被加载时,这个复选框对。出什么问题了?

在asp.net c#中的复选框问题

如果您希望通过单击复选框来启用文本框,则需要在复选框被选中时通过设置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;
}

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

在checkbox_Selectedindexchanged事件中编写以下代码

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

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

在您的page_load中试试:

txtSubmissionDate.enabled = !chkSubmitted.Checked

说明一下,当复选框为

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

把这个放到Page_PreRender事件中。在这个阶段,它将捕获chkSubmitted的用户受影响状态。