Adding a CheckBox column to your DataGrid
http://www.codeproject.com/aspnet/DataGridCheckBox.asp

解决方案 »

  1.   

    我这个学生交作业,交上一个勾一个,当然用datagrid打勾用update更新,可能的麻烦在update,表的结构要好好考虑,能使更新方便一点。
      

  2.   

    可能是我问得不好吧,我还是没有明白。大家再看看:
    请教关于datalist的问题? 
    我有一张表,如: 
    ---------------------------- 
    id      name    chioced 
    ---------------------------- 
    1       user1      0 
    2       user2      0 
    3       user3      1 
    ...... 
    ---------------------------- 
    注:chioced是bool型的,0表示为假,而1表示为真。 我在input.aspx中的相关代码为: 
    ...... 
    <asp:datalist id="dlDoInput" runat="server" Font-Size="Smaller" CellPadding="4" BorderColor="black" Width="100%" GridLines="Both" BorderWidth="1" RepeatColumns="4"> 
       <HeaderTemplate> 
          <P>名称列表</P> 
       </HeaderTemplate> 
       <ItemTemplate> 
          名称:<%# DataBinder.Eval(Container.DataItem, "name", "{0:d}") %><BR> 
          是否选择:<asp:CheckBox id=chk1 Checked='<%# (bool)DataBinder.Eval(Container.DataItem, "choiced") %>' runat=server/>      </ItemTemplate> 
    </asp:datalist> 
    ...... 在input.aspx.cs中进行了数据绑定。 
    ...... 
    public void BindGrid() 

       //连接SQL SERVER2000数据库MyData 
       string strConnection = "Data Source=Localhost;Initial Catalog=MyData;User ID=sa;Pwd=;"; 
       SqlConnection objConnection = new SqlConnection(strConnection); 
       objConnection.Open();    string strSQL2 = "SELECT * FROM qzb"; 
       SqlDataAdapter objDataAdapter2 = new SqlDataAdapter(strSQL2,objConnection); 
       objDataAdapter2.Fill(objDataSet,"qzb"); 
       DataView objDataView2 = new DataView(objDataSet.Tables["qzb"]);    dlDoInput.DataSource = objDataView2; 
       dlDoInput.DataBind(); 

    ...... 现在的问题是,我能够在网页中看到chioced的值是以checkbox的样子显示出来的,但我如何对它进行修改,我指的是一次性更改多个值后一起提交,修改chioced数据值,如何实现呢?
      

  3.   

    www.google.com,搜索XML 数据岛,很多。
    当一个表格绑定到一个XML的时候,里面的勾选框会根据内容0或1,TRUE或FALSE自动不选 或选。好像DATAGRID控件绑定DATASET的时候也能实现的吧?
      

  4.   

    也许是我没有说清楚,我现在已经把数据绑定到DATALIST控件上了,已经能够出显CHIOCED值是真时,CHECKBOX有钩钩,而反之,没有钩钩,我现要的是不是像.NET中的那种快速入门的一条记录一条记录的更新数据,而是全部更改后,一起提交给数据库,代码应该如何写?谢谢。
      

  5.   

    那就一行一行检查有没有勾选框
    或者先记录勾引框的状态,保存在一个隐藏域里,当点击勾选框的时候,更新先前记录的状态。
    用XML也可以。
      

  6.   


    在提交按钮里处理:For i = 0 To DG.Items.Count - 1Dim ChkBox As New CheckBox()
    ChkBox = CType(DG.Items(i).FindControl("MyGroup"), CheckBox)
    Id = CType(DG.Items(i).FindControl("Id"), Label).Text  '隐藏的列存储对应记录的idIf ChkBox.Enabled = True Then
      If ChkBox.Checked = True Then
         调用存储过程处理True 
      Else
         调用存储过程处理false
      End If
    End IfNext在datagrid需要一个隐藏的列,存储id
    调用存储过程时要传参数 id,choiced不知道你看不看得明白!