我想要做这样一种效果:
DataGridView绑定了一个只有一列的DataTable,该列的类型为int;
而DataGridView显示的时候显示两列,一列是DataTable有的内容,另一列中是CheckBox控件;
界面上还有一个按钮用于求和;
求和的方法是有选择的求和,只有CheckBox被勾选的那行中的数据才会被计算进来。
希望能提供一种比较详细的方案。

解决方案 »

  1.   

    可以加的。在模板列里直接加个就是了!~
    <ItemTemplate>
     ……
    <asp:checkBox id="chk" runat="server" />
    </itemtemplate>
      

  2.   

    可以
    你直接取选中checkbox行的值,然后求和就可以了。
      

  3.   

    一段VB的代码,仅供参考:
    '动态添加CheckBox列
    Dim cel As New DataColumn("确认", System.Type.GetType("System.Boolean"))
    dst.Tables(0).Columns.Add(cel)
    cel.SetOrdinal(1)
    DataGridView.datasource=dst.Tables(0)
      

  4.   


    Dim dblSumQty as Double = 0For i As Integer = 0 To DataGridView.Rows.Count - 1
        If DataGridView.Rows(i).Cells(1).FormattedValue = True Then  '打勾
            If Not IsDBNull(DataGridView.Rows(i).Cells("Qty").Value) Then
    if isNumeric(DataGridView.Rows(i).Cells("Qty").Value) then
    dblSumQty = dblSumQty + Cdbl(DataGridView.Rows(i).Cells("Qty").Value)
    end if
            End If
        End If
    Next
      

  5.   

    当然可以加的.
    不过既然是winform, 那么界面应该直接让用户框选,一个个点复选框多累啊.
      

  6.   

    将DataGridView第一列的ColumnType设置成DataGridViewCheckBoxColumn,第2列为要累加的内容:Decimal sum = 0;for (int i = 0; i < grdDetail.RowCount; i++)
    {
        if (grdDetail[0, i].Value == True)
        {
            sum = sum + Decimal.Parse(grdDetail[1, i].Value.ToString());
        }
    }
      

  7.   

    我指的是:DataGridView第一列的ColumnType设置成DataGridViewCheckBoxColumn;
    用代码怎么设?
      

  8.   

    这些代码窗体设计器里面有的
    DataGridViewColumn col = new DataGridViewCheckBoxColumn();
    this.dataGridView1.Columns.Add(col);
      

  9.   

    如果原来已经有了其他类型的列想替换的话可以这样
    DataGridViewColumn col = new DataGridViewCheckBoxColumn();
    this.dataGridView1.Columns.RemoveAt(0);
    this.dataGridView1.Columns.Insert(0, col);
      

  10.   

    为什么我加了checkbox列后,却不能用,根本点击不了。、
    所以想问一下,如何对这个checkbox列进行操作
      

  11.   

    Decimal sum = 0;for (int i = 0; i < grdDetail.RowCount; i++)
    {
        if (grdDetail[0, i].Value == True)
        {
            sum = sum + Decimal.Parse(grdDetail[1, i].Value.ToString());
        }
    }
    代码中
    if (grdDetail[0, i].Value == True)
    编译不能通过,提示
    错误 1 运算符“==”无法应用于“object”和“bool”类型的操作数