复选框在页面加载时无法正常工作

时间:2013-07-15 10:33:20

标签: c# asp.net checkbox

我的复选框有问题,在它旁边启用相应的控件。我的要求是在页面加载时我们要使用复选框禁用所有文本框和下拉列表 如果选中该复选框,则会启用该复选框旁边的控件,因为我已经这样做....

页面加载

我写得像这样

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ChckOrdType.Checked = false;
            ChkPlntPric.Checked = false;
            ChkExcluBro.Checked = false;
            ......
            .....
        }

然后在复选框中检查已更改的事件,我写得像这样

    protected void ChckOrdType_CheckChanged(object sender, EventArgs e)
    {
        if (ChckOrdType.Checked)           
            ddlOrdType.Enabled = true;
        else 
            ddlOrdType.Enabled = false;            
    }

    protected void chkPlntPric_CheckChanged(object sender, EventArgs e)
    {
        if (ChkPlntPric.Checked)
            ddlPlntPric.Enabled = true;
        else
            ddlPlntPric.Enabled = false;
    }

    protected void chkExcluBro_CheckChanged(object sender, EventArgs e)
    {
        if (ChkExcluBro.Checked)
            ddlExcluBroker.Enabled = true;
        else
            ddlExcluBroker.Enabled = false;       
    }

但结果是这样的...... 我没有选中复选框,旁边的控件已启用...但这不是我想要的

我的结果是,如果未选中复选框,则禁用旁边的控件 任何人都会对此有所帮助.... 在此先感谢......

2 个答案:

答案 0 :(得分:3)

这是因为您刚刚编写了仅取消选中页面加载中的复选框而不是禁用复选框后面的控件;如果需要,那么页面加载中的代码段应为:

if (!Page.IsPostBack)
{
  ChckOrdType.Checked = false;
  ChkPlntPric.Checked = false;
  ChkExcluBro.Checked = false;
  ......
  .....
  ddlOrdType.Enabled = false; 
  ddlPlntPric.Enabled = false;
  ddlExcluBroker.Enabled = false;  
  .........
}

if (!Page.IsPostBack)
{
  ChckOrdType.Checked = false;
  ChkPlntPric.Checked = false;
  ChkExcluBro.Checked = false;
  ......
  .....

  ChckOrdType_CheckChanged(sender,e);
  chkPlntPric_CheckChanged(sender,e);
  chkExcluBro_CheckChanged(sender,e);
  ...
}

答案 1 :(得分:0)

禁用页面加载中的文本框,如下所示。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            ChckOrdType.Checked = false;
            ChkPlntPric.Checked = false;
            ChkExcluBro.Checked = false;

            DisableFirstTime();
            ......
            .....
        }


private void DisableFirstTime()
{
  ddlOrdType.Enabled = false; 
  ddlPlntPric.Enabled = false;
  ddlExcluBroker.Enabled = false;  
}