ITPUB??ì3
ITPUB论坛 » Web开发 » ASP.NET与AJAX » 当点击GridView模板列Button时如何得到当前行号

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: 当点击GridView模板列Button时如何得到当前行号
离线 zly526
一般会员



精华贴数 0
个人空间 0
技术积分 196 (9621)
社区积分 0 (1203523)
注册日期 2006-12-7
论坛徽章:1
开发板块每日发贴之星     
      

发表于 2006-12-10 18:12 
当点击GridView模板列Button时如何得到当前行号

在GridView添加了一个模板列,里面放一个Button,当点击这个Button时如何得到当前行的RowIndex?


只看该作者    顶部
离线 mm_xlhy123
一般会员



精华贴数 0
个人空间 0
技术积分 90 (18068)
社区积分 0 (1206659)
注册日期 2006-12-7
论坛徽章:0
      
      

发表于 2006-12-10 18:13 
e.Row.RowType == DataControlRowType.DataRow


从新写OnRowDataBound事件


只看该作者    顶部
离线 mm_xlhy123
一般会员



精华贴数 0
个人空间 0
技术积分 90 (18068)
社区积分 0 (1206659)
注册日期 2006-12-7
论坛徽章:0
      
      

发表于 2006-12-10 18:14 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
 if (e.Row.RowType == DataControlRowType.DataRow)
 {
     LinkButton l = (LinkButton)e.Row.FindControl("delete";
     l.Attributes.Add("onclick", "return confirm('删除与否??');";
 }
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
      int categoryID = (int)GridView1.DataKeys[e.RowIndex].Value;
      DeleteRecordByID(categoryID);
    }


只看该作者    顶部
离线 mxd061203
初级会员



精华贴数 0
个人空间 0
技术积分 122 (14269)
社区积分 0 (1203555)
注册日期 2006-12-8
论坛徽章:0
      
      

发表于 2006-12-10 18:16 
1.RowDataBound,把行号邦定到按钮的属性上:btn.Attributes["Test"] = (e.Row.RowIndex)
2.gridview里面的按钮点击时,执行itemcommond
在这个事件里面e,转换成按钮,拿到(e as Button).Attributes["Test"]


只看该作者    顶部
离线 zly526
一般会员



精华贴数 0
个人空间 0
技术积分 196 (9621)
社区积分 0 (1203523)
注册日期 2006-12-7
论坛徽章:1
开发板块每日发贴之星     
      

发表于 2006-12-10 18:17 
不是的,我是在模板编辑状态直接双击这个按钮控件来生成ButtonClick事件的,
protected void btnDelete_Click(object sender, EventArgs e)
{

}
这个e是EventArgs的,根本点不出个Row来,
或者不通过这种方法来写事件也行,我是想点击按钮删除当前行的记录,可是现在取不到当前行的行号,各位谢谢了


只看该作者    顶部
离线 新意纤维
一般会员



精华贴数 0
个人空间 0
技术积分 134 (13252)
社区积分 0 (1203552)
注册日期 2006-12-7
论坛徽章:0
      
      

发表于 2006-12-10 18:18 
GridView 有一个DataKeyName的属性。
一般我们绑定的时候只是一个主键,DataGrid只能设置一个,不过GridView可以设置多个。比如设置“id”为GridView的DataKeyName的值(一个的话要在控件属性里设置。如果是要在代码里写,是一个数组)

要读取到这个ID的时候,只需要要DataKeys这个属性,如下
string mykey = this.GridView1.DataKeys[e.NewEditIndex].Value.ToString();
这样,取到的mykey就是这条记录的“id”值。

如果是一个模板列,可以给这个按钮的CommandName属性设置一个值,比如xx.CommandName="xx";
然后在GridView的事件RowCommand里写具体代码了,如
//点击添加事件
    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "xx"
        {
            ……
        }
    }

其实用法和DataGrid差不多


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问