aspx頁面上的控制都是這樣 提交 提交日期 問題在asp.net.net c#中的複選框?
我想,如果複選框被選中,則文本框將被啓用我在寫
if(chkSubmitted.Checked)
{
txtSubmissionDate.Enabled = true;
}
頁面加載事件。但是當頁面被加載時,這個複選框不起作用。發生什麼事了?
aspx頁面上的控制都是這樣 提交 提交日期 問題在asp.net.net c#中的複選框?
我想,如果複選框被選中,則文本框將被啓用我在寫
if(chkSubmitted.Checked)
{
txtSubmissionDate.Enabled = true;
}
頁面加載事件。但是當頁面被加載時,這個複選框不起作用。發生什麼事了?
如果你想點擊複選框啓用文本框的動作,你需要做一個回發時,箱子被設置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;
}
這很可能是因爲txtSubmissionDate的默認狀態已啓用。
在page_load
試試這個:
txtSubmissionDate.enabled = !chkSubmitted.Checked
爲了澄清,文本框不應該當複選框被啓用(!)。
把這放在Page_PreRender
事件。在這個階段它將捕獲用戶受影響的chkSubmitted狀態。
第一套自動回屬性複選框的真實
寫下面的代碼在checkbox_Selectedindexchanged事件
if(chkSubmitted.Checked)
{
txtSubmissionDate.Enabled = true;
}
else
{
txtSubmissionDate.Enabled = false;
}
你能發佈你的page_load代碼嗎?記得你需要檢查回傳嗎? – 5arx
您是否在chkSubmitted控件上啓用了viewstate? –
該代碼應該在Page_PreRender事件中。 – Icemanind