a3608717
a3608717
采纳率0%
2015-12-24 06:51

在C# Winfrom中gridview的分组问题

我在画面上拉了个控件 控件是Dev 的GridView
我现在在这个GridView中做了分组 父级的gridview 的值是加总 分组内的gridview的值 我现在展开了 grid的加号 焦点停在 分组里的grid 这个时候我如何获取 当前选中的分组内的grid的当前行

求大神帮忙~

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • Dongle_74 Dongle_Kevin 6年前

    获取gridview当前选中行的内容:

    txt.Text = GridView1.Rows(GridView1.SelectedIndex).Cells(i).Text '获取第i+1列内容
    
    点赞 评论 复制链接分享
  • John_ToString John_ToString 6年前

    方法一:SelectedIndex
    获取gridview当前选中行的内容
    txtid.Text = GridView1.Rows(GridView1.SelectedIndex).Cells(1).Text '获取第二列
    txttitle.Text = CType(GridView1.Rows(GridView1.SelectedIndex).Cells(2).Controls(0), HyperLink).Text '如果列是hyperlink控件,用此方法可以获取
    txttime.Text = GridView1.Rows(GridView1.SelectedIndex).Cells(3).Text '获取第三列
    txtauthor.Text = GridView1.Rows(GridView1.SelectedIndex).Cells(4).Text '获取第四列

    方法二:SelectedRow

    直接在GRIDVIEW里添加一列选择列,在SelectedIndexChanged事件下写

    TextBox.Text=GridView1.SelectedRow.Cells[你要显示在TextBox里的单元格的下标].Text;

    方法三:e.RowIndex

    直接在GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)事件下写

    GridView1.Rows[e.RowIndex].Cells[1].Controls[0]

    方法四:NamingContainer

    通过 ((GridViewRow)(chk.NamingContainer)).RowIndex 即可获得当前选择行的行号,行号有了之后就可以根据行号取任意列的数据了。

    问题关键所在是这里的CheckedChanged事件传入的参数sender为CheckBox,通过NamingContainer可以获取当前checkbox所在容器对象,即gridviewrow

    protected void chkrow_CheckedChanged(object sender, EventArgs e)
    
    {
    
        CheckBox chk = sender as CheckBox;
    
        int index = ((GridViewRow)(chk.NamingContainer)).RowIndex;
    
        if (chk.Checked)
    
        {
    
           this.lbmargemx.Text += this.gvordermx.Rows[index].Cells[1].Text.Trim() ;
    
        }
    
    }
    

    方法五:DataKeys

    GridView1.DataKeys[e.RowIndex] //DataKeys获取主键那一列

    点赞 评论 复制链接分享

相关推荐