如何使复选框处于选中状态且未启用

时间:2019-02-24 12:17:47

标签: c# asp.net webforms

我要创建一个既是复选框又是

Checked = true

Enabled = false

我该怎么做?

我写了这段代码,但是它从复选框中删除了Checked

chkDecreaseAbsenceFromExtraWork.Enabled = !SecurityManager.HasAccess(Session, AccessCode.EditDecreaseAbsenceFromExtraWorkIsImpossible); 

2 个答案:

答案 0 :(得分:1)

不幸的是,这似乎是HTML本身的设计功能-values of disabled inputs will not be submitted?

您可以尝试

  1. 可以使用hidden fields并将其复选框的值与其形式同步-也就是说,如果您确实需要禁用输入。
  2. 或者您可以制作checkbox readonly

答案 1 :(得分:1)

如果您有CheckBox控件

<asp:CheckBox ID="CheckBox1" runat="server" />

您将其设置为选中并禁用

protected void Page_Load(object sender, EventArgs e)
{
    if (IsPostBack == false)
    {
        CheckBox1.Enabled = false;
        CheckBox1.Checked = true;
    }
}

Eugene Podskal是正确的,因为未提交值。但是,ViewState仍会将CheckBox设置为在PostBack之后选中。

protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = "CheckBox is " + CheckBox1.Checked;
}