Gridview获取选定行的办法

      

     基本上使用.NET平台不会有人没用过GridView 的,获取其选定行也成为新手常见的问题,现在结合以前的代码,总结三种可能的情况.

     注意这里的三种方法不是互为补充相互替代的,是应用在不同情况下的。

 

一. 页面代码中有如下语句:     

    OnSelectedIndexChanged="GridView2_SelectedIndexChanged"   (事实上在设计视图下双击gridview机会自动生成此语句,并自动在C#也中生成如下)

 

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)

    {      

        int index = GridView1.SelectedIndex;       //选定行的索引号

        try

        {

            if (index != -1)                     

            {

                TextBox2.Text = this.GridView1.SelectedRow.Cells[1].Text.ToString();           //这里取道所选行第二列的元素,注意这里的列需要为BoundField列,不能是                                                                                                                TemplateField,如果是后者,要用到FindControl,第二种方法中有示例

            }

    这种方法下,GRIDVIEW中一般会有个选择按钮(也可以是编辑、删除、或者其他TemplateField中的button),总之要按钮驱动选定行的改变

 二.有时GRIDVIEW中可能不用选择按钮,而是把其中某个字段作为按钮(事实上依然是BUTTON,只不过把button的text值绑定到字段),通常这里的字段可以是数据库中的索引键,也可以是名称等。注意这里一定是TemplateField 列。

 比如下面的页面代码,就是把编号字段(id)绑定到按钮上。我们的目的是点击此按钮时获取该(id)的值 。
 

        <asp:LinkButton ID="LinkButton1" OnCommand="LinkButton1_Clicked" runat="server" Text='<%# Bind("id") %>' ></asp:LinkButton>

c#也代码如下:

public void LinkButton1_Clicked(Object sender, CommandEventArgs e)

    {

        int index = int.Parse(e.CommandArgument.ToString());

        string id = ((LinkButton)GridView1.Rows[index].Cells[0].FindControl("LinkButton1")).Text;

 

三.更为通用的情况,只要gridview中有按钮即可,不管按钮是自带的选择、编辑,还是TemplateField中自定义的按钮,只需要在页面代码的GRIDVIEW代码中加入如下语句:

        OnRowCommand="GridView2_RowCommand"

然后页面代码中:

   protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)

    {

         Control c = ((Control)e.CommandSource);    

         GridViewRow gvr = (GridViewRow)c.Parent.Parent;   //这里的gvr就是选定的行了,下面的语句分别适用BoundField和TemplateField

         string s = gvr.Cells[0].Text;

//或者

string s = ((Label)gvr.FindControl("Label1")).Text;
 

}

转载于:https://www.cnblogs.com/xiadongzq/archive/2008/12/05/1348800.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值