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

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

选择 币种 应收 实收
× 美元 100 100
√ 美元 50 50
√ 人民币 80 80
√ 美元 70 70
√ 人民币 60 60
以上是 我页面上 的dgv 一下是 想要的结果(是每次点击选择列时 都要计算如果为true就向新的dt里添加并计算结果)
选择 币种 应收 实收
√ 美元 120 120
√ 人民币 140 140
...全文
228 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
_小黑_ 2013-12-16
  • 打赏
  • 举报
回复
引用 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
feiniao19830822 2013-12-16
  • 打赏
  • 举报
回复
引用
我当时的困惑是 如何 才能 判断 当前点击的那一列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")
                {
                }
            }
        }
_小黑_ 2013-12-16
  • 打赏
  • 举报
回复
引用 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)
    };
就是 点一次 触发 一次 事件
_小黑_ 2013-12-16
  • 打赏
  • 举报
回复
引用 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 能帮我解答一下吗
熙风 2013-12-13
  • 打赏
  • 举报
回复
把选中的行放入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)
    };

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧