C# 如何禁用GridView标题中的复选框?

C# 如何禁用GridView标题中的复选框?,c#,asp.net,visual-studio-2008,gridview,C#,Asp.net,Visual Studio 2008,Gridview,在这个GridView中,我想在视图模式下禁用GridView中的所有复选框。 我可以禁用GridView行单元格,如 foreach (GridViewRow GVR in gvPODetails.Rows) { GVR.Cells[1].Enabled = GVR.Cells[11].Enabled = false; } 但是我不知道如何禁用模板字段HeaderTemplate中的复选框。如何做到这一点?配方: 在Grid

在这个GridView中,我想在视图模式下禁用GridView中的所有复选框。 我可以禁用GridView行单元格,如

foreach (GridViewRow GVR in gvPODetails.Rows)
    {
        GVR.Cells[1].Enabled =          
        GVR.Cells[11].Enabled = false;
    }
但是我不知道如何禁用模板字段HeaderTemplate中的复选框。如何做到这一点?

配方:

  • 在GridView上处理OnRowDataBound
  • 使用
    e.Row.RowType==DataControlRowType.header
    检测您是否正在迭代标头,并使用
    e.Row.FindControl(checkBoxID)获取对复选框控件的引用
  • Enabled
    属性设置为
    False
  • 请尝试以下代码:

    void GridView_RowDataBound(Object sender, GridViewRowEventArgs e) 
    {
        if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Header ) {
            MyClass myObj = (myObj)e.Row.DataItem;
            CheckBox cb = (CheckBox)e.Row.FindControl("myCheckBox");
            cb.Enabled=false;        
        }
    }
    
    如果您想使用javascript,请单击此处

    您可以将复选框
    启用
    属性设置为
    false
    或解释您想要实现的目标。@Yuriy:我编辑了我的问题,请查看。.您的代码禁用所有复选框,就像您编写的
    如果(e.Row.RowType==DataControlRowType.DataRow | | e.Row.RowType==DataControlRowType.Header)
    但是询问者想要禁用标题中的复选框,因此它应该是:
    如果(e.Row.RowType==DataControlRowType.header)
    然后在这里禁用。谢谢你抽出时间。