aspx页面上的控件是这样的 提交 提交日期
我想,如果选中复选框,则会启用文本框我写
if(chkSubmitted.Checked)
{
txtSubmissionDate.Enabled = true;
}
在页面加载事件中。但是当加载页面时,此复选框不起作用。怎么回事?
答案 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状态。