在GridView添加了一个模板列,里面放一个Button,当点击这个Button时如何得到当前行的RowIndex?
解决方案 »
- JS参数传递怎么写?
- ASP.NET中怎么用JS传值和方法?
- 为什么要用com组件
- MVC 架构开发程序下不能存取Cookie问题(三天了没搞清)
- .net中使用AJAX,刷新后如何保存页面状态?
- SharePoint做Webpart
- AspNetPager怎么用泛型分页(详细),急急~~!
- 用水晶报表导出word文件后,为什么有的机器无法打开此word文档?
- 关于style='position:absolute'的无遮挡问题,为什么两台电脑上显示结果不一样,高手指教了
- 有否用C#写的ASP.NET的书,怎样学好ASP.NET?
- DataGrid模板列的问题,在线等,急,谢谢了
- 关于IHttpHandlerFactory的问题.请诸位看下.谢谢
{
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);
}
protected void btnDelete_Click(object sender, EventArgs e)
{}
这个e是EventArgs的,根本点不出个Row来,
或者不通过这种方法来写事件也行,我是想点击按钮删除当前行的记录,可是现在取不到当前行的行号,各位谢谢了
OnRowDeleting="GridView1_RowDeleting"
</asp:TemplateField>
</Columns>
</asp:GridView>
2.gridview里面的按钮点击时,执行itemcommond
在这个事件里面e,转换成按钮,拿到(e as Button).Attributes["Test"]
一般我们绑定的时候只是一个主键,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差不多