既然是boolean值,那么你的这个字段为什么不设定默认值呢??
因为他只有两种状态嘛!如果设定了默认值,那么直接绑定就行了你的数据库设计有问题(我认为):)

解决方案 »

  1.   

    Dim count As Integer = 0
            Dim chkSelected As CheckBox
               Dim i, c As Integer
            c = DataGrid1.Items.Count
            If (c = 0) Then
                Exit Sub
            End If
            For i = 0 To (c - 1)
                '从列表依次选取每行
                chkSelected = Nothing
                chkSelected = DataGrid1.Items(i).FindControl("check1")
                If (Not (chkSelected Is Nothing)) Then
    'datadinding
                end if
      

  2.   

    在itemdatabound事件中绑定吧:
    public void MyDataGrid_OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.EditItem||e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    CheckBox Check= (CheckBox)e.Item.FindControl("au_lname");
      String myRole = DataBinder.Eval(e.Item.DataItem, "boolea").ToString();
    if (myRole=="true"){
    Check.Checked=true;
    }
    else{
    Check.Checked=false;
    }
    }
      

  3.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    if((bool)(((DataRowView)e.Item.DataItem)[3]) == true)
    {
    ((CheckBox)e.Item.Cells[3].Controls[0]).Checked = true;
    }
    else
    {
    ((CheckBox)e.Item.Cells[3].Controls[0]).Checked = false;
    }
    }

    }
      

  4.   

    个人觉得在itemdatabound中处理比较好
      

  5.   

    在itemdatabound事件中绑定吧:
    public void MyDataGrid_OnItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType == ListItemType.EditItem||e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    CheckBox Check= (CheckBox)e.Item.FindControl("au_lname");
      String myRole = DataBinder.Eval(e.Item.DataItem, "boolea").ToString();
    if (myRole=="true"){
    Check.Checked=true;
    }
    else{
    Check.Checked=false;
    }
    }
      

  6.   

    add your checkbox checked property in html
    set checked='<%# DataBinder.Eval(e.Item.DataItem, "boolea")%>'
      

  7.   

    你在取数据的时候,就把空的替换成 0
     
    SELECT IsNull(chk,0) As chk... from...在模板列里面用:
    checked='<%# DataBinder.Eval(e.Item.DataItem, "boolea")%>'
      

  8.   

    checked='<%# DataBinder.Eval(e.Item.DataItem, "chk")%>'
      

  9.   

    SELECT IsNull(chk,0) As chk... from...在模板列里面用:
    checked='<%# DataBinder.Eval(Container.DataItem, "chk")%>'肯定没问题的。
      

  10.   

    Container.DataItem与e.Item.DataItem
    有什么区别,请明示一下
      

  11.   

    DataBinder.Eval:“System.Data.DataRowView”不包含名称为 chk 的属性。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: DataBinder.Eval:“System.Data.DataRowView”不包含名称为chk的属性。源错误: 
    行 16:  <asp:TemplateColumn>
    行 17:  <ItemTemplate>
    行 18: <asp:CheckBox id="chk" checked='<%# DataBinder.Eval(Container.DataItem, "boolea")%>' runat="server">
    行 19:  </asp:CheckBox>
    行 20:  </ItemTemplate>