当前位置:编程学习 > C#/ASP.NET >>

dgv如何把选中行的 其中一列相加

RT 我有一个 dgv 有一列是 checkbox类型的其余三列时 币种,应收,实收,我想实现 点击 checkbox这一列 就把选中 这一行的 币种,应收,实收 添加到 另一个 dt里 在添加的时候 要把相同 币种 的应收 和 实收 相加求高手 解答

选择   币种    应收    实收
×      美元    100    100
√      美元    50     50
√      人民币   80     80
√     美元      70      70
√     人民币    60      60
以上是 我页面上 的dgv 一下是 想要的结果(是每次点击选择列时 都要计算如果为true就向新的dt里添加并计算结果)
选择   币种    应收    实收
√      美元    120    120
√      人民币   140     140 --------------------编程问答-------------------- 把选中的行放入dataTable中

var q =
    from p in dt.AsEnumerable()
    group p by p.currency into g
    select new {
        g.Key,
        TotalPrice1 = g.Sum(p => p.Price1),
        TotalPrice2 = g.Sum(p => p.Price2)
    };
--------------------编程问答--------------------
引用 1 楼 happy09li 的回复:
把选中的行放入dataTable中

var q =
    from p in dt.AsEnumerable()
    group p by p.currency into g
    select new {
        g.Key,
        TotalPrice1 = g.Sum(p => p.Price1),
        TotalPrice2 = g.Sum(p => p.Price2)
    };

3Q
可惜 我们是 2.0不支持 linq
不过我 已经 跟 他们说 改变需求了 是在 另一个页面 显示 选中 行的总金额 用 sql已经 解决了 ,我当时的困惑是 如何 才能 判断 当前点击的那一列cheeckbox 并且 为 true
能帮我解答一下吗  --------------------编程问答--------------------
引用 1 楼 happy09li 的回复:
把选中的行放入dataTable中

var q =
    from p in dt.AsEnumerable()
    group p by p.currency into g
    select new {
        g.Key,
        TotalPrice1 = g.Sum(p => p.Price1),
        TotalPrice2 = g.Sum(p => p.Price2)
    };

就是 点一次 触发 一次 事件  --------------------编程问答--------------------
引用
我当时的困惑是 如何 才能 判断 当前点击的那一列cheeckbox 并且 为 true

可以使用CellContentClick事件

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //判断列是否是CheckBox类型
            //如果你知道是第几列,也可以用e.ColumnIndex == 0来判断
            if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn)
            {
                //checkbox选中
                if (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString() == "True")
                {
                }
            }
        }

--------------------编程问答--------------------
引用 4 楼 u011303459 的回复:
引用
我当时的困惑是 如何 才能 判断 当前点击的那一列cheeckbox 并且 为 true

可以使用CellContentClick事件

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //判断列是否是CheckBox类型
            //如果你知道是第几列,也可以用e.ColumnIndex == 0来判断
            if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewCheckBoxColumn)
            {
                //checkbox选中
                if (this.dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString() == "True")
                {
                }
            }
        }

3q
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,