ItemDataBoune事件:
private void check(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
for(int i=0;i<...;i++)
  {
   CheckBox ck=new CheckBox();
   ck=(CheckBox)e.Item.Cells[0].FindControl("OID_Sel");
   
   if(e.Item.Cells[1].Text!="203")
   {
    ck.Enable=false;
   }
}

解决方案 »

  1.   

    <asp:CheckBox runat=server id=ck enable='<%# Check(DataBind.Eval(DataContainer.DataItem."deportment"))%>'>再写一函数:Check(string deportment)来判断。
      

  2.   

    请问兄弟:你是不是想实现在DataGrid的默认显示时就只让203的记录显示?若是:
    private void clxqjhzb_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if((e.Item.ItemType == ListItemType.Item)||(e.Item.ItemType == ListItemType.AlternatingItem))
    {
    CheckBox OID_Sel=(CheckBox)e.Item.FindControl("OID_Sel");
    OID_Sel.CheckedChanged +=new EventHandler(OID_Sel_CheckedChanged);
    }
    }
    然后在OID_Sel_CheckedChanged事件中加入如下代码:
                               int Count;
    string strValue;
    for(Count=0;Count<=clxqjhzb.Items.Count-1;Count++)
    {
    strValue=clxqjhzb.Items[Count].Cells[1].Text.Trim().ToString();//得到所选企业的注册号
    CheckBox OID_Sel= (CheckBox)clxqjhzb.Items[Count].FindControl("OID_Sel");
    if(strValue=="203")
    {
       OID_Sel.Enable=true;
    }
    else
    {
       OID_Sel.Enable=false;
    }
    }
      

  3.   


        Private Sub clxqjhzb_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles clxqjhzb.ItemDataBound
            If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
                Dim CheckBox1 As CheckBox = CType(e.Item.FindControl("CheckBox1"), CheckBox)
                Dim s As String = DataBinder.Eval(e.Item.DataItem, "CWSHR").ToString
                CheckBox1.Enabled = (s = "203")
            End If
        End Sub