GridView功能汇总
GridView点击删除后弹对话框再删除 添加一个模版列,编辑模版列,并加入一个linkButton ,在onClientClick中加入JavaScript:return confirm('你确定要删除该行记录吗?');
在html中找到那个模版列在其中加入这个属性CommandArgument='<%# Bind("ID") %>'
选中LinkButton的事件Command项,写入LinkButton1_Delete然后在后台代码中这样实现:
protected void LinkButton1_Delete(object sender, CommandEventArgs e)
{
string cateNo=e.CommandArgument.ToString();
bool hehe = CategoryColl.Delete(cateNo);
if (hehe == false)
{
Response.Write(@"<script language=""JavaScript"">alert(""此分类包括日志不能删除!"");
</script>");
}
Show();
}
完成
Gridview的RowCommand事件用法
当单击 GridView 控件中的按钮时发生次事件。
在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义例程。
GridView 控件中的按钮也可调用该控件的某些内置功能。若要执行这些操作之一,请将按钮的 CommandName 属性设置为下表中的某个值。
CommandName 值
说明
“Cancel”
取消编辑操作并将 GridView 控件返回为只读模式。引发RowCancelingEdit 事件。
“Delete”
删除当前记录。引发RowDeleting 和 RowDeleted 事件。
“Edit”
将当前记录置于编辑模式。引发RowEditing 事件。
“Page”
执行分页操作。将按钮的 CommandArgument 属性设置为“First”、“Last”、“Next”、“Prev”或页码,以指定要执行的分页操作类型。引发PageIndexChanging 和 PageIndexChanged 事件。
“Select”
选择当前记录。引发SelectedIndexChanging 和 SelectedIndexChanged 事件。
“Sort”
对 GridView 控件进行排序。引发Sorting 和 Sorted 事件。
“Update”
更新数据源中的当前记录。引发RowUpdating 和 RowUpdated 事件。
尽管单击上表中所列出的按钮时将引发 RowCommand 事件,但仍建议您使用该表中列出的事件来执行该操作。
将GridViewCommandEventArgs 对象传递到事件处理方法,以便您可以确定被单击按钮的命令名和命令参数。
注意GridViewCommandEventArgs 类未包含一个用于指示单击按钮所在行的属性。如果需要知道哪个行引发了事件,请使用CommandArgument 属性将行的索引传给事件处理方法。
1.下面演示当单击gridview中的一个按钮时删除数据库中的一个记录。
添加一个模版列,编辑模版列,并加入一个linkButton ,在html里把linkButton的CommandName属性设置为del,然后双击gridview的rowCommand产生事情代码,代码如下:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="del") { //判断命令名
int index = Convert.ToInt32(e.CommandArgument); //获得该按钮在gridview中的位置,即第几行
GridViewRow row = GridView1.Rows[index]; //通过索引返回该行
string i= row.Cells[0].Text.ToString().Trim(); //获得该行第1列的数据项
DiaryColl.Delete(i);
Show();
}
}
2.下面演示添加自定义分页的用法
在html的gridview中添加分页模板,可以图形化设置,html代码如下:
<PagerTemplate>
共<asp:Label ID="Label1" runat="server"Text='<%#GridView1.PageCount %>' ></asp:Label>页
<asp:LinkButton ID="LinkButton2" runat="server" ForeColor="White"CommandName="prev"> 上一页</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server" ForeColor="White"CommandName="next"> 下一页</asp:LinkButton>
</PagerTemplate>
下划线为重点要添加的,然后写rowCommand事件代码,如下:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "prev")
{
if (GridView1.PageIndex != 0)
{
GridView1.PageIndex--;
Show();
}
}
if (e.CommandName == "next")
{
GridView1.PageIndex++;
Show();
}
}
GridView的RowDataBound事件用法
在 GridView 控件中将数据行绑定到数据时发生。
呈现 GridView 控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用GridViewRow 对象表示)绑定到 GridView 控件中的数据以后,将引发 RowDataBound 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时都执行一个自定义例程(如修改绑定到该行的数据的值)。
GridViewRowEventArgs 对象将被传给事件处理方法,以便您可以访问正在绑定的行的属性。若要访问行中的特定单元格,请使用 GridViewRowEventArgs 对象的 Cells 属性。使用 RowType 属性可确定正在绑定的是哪一种行类型(标题行、数据行等等)。
下面的代码示例演示如何使用 RowDataBound 事件在数据源中的字段值显示在 GridView 控件中之前修改该值。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int id=Convert.ToInt32(e.Row.Cells[4].Text); //获得新闻的类别ID
Category c = new Category();
e.Row.Cells[4].Text=c.GetNameById(id); //把新闻的类别ID转换成类别名
}
}
在html中找到那个模版列在其中加入这个属性CommandArgument='<%# Bind("ID") %>'
选中LinkButton的事件Command项,写入LinkButton1_Delete然后在后台代码中这样实现:
protected void LinkButton1_Delete(object sender, CommandEventArgs e)
{
string cateNo=e.CommandArgument.ToString();
bool hehe = CategoryColl.Delete(cateNo);
if (hehe == false)
{
Response.Write(@"<script language=""JavaScript"">alert(""此分类包括日志不能删除!"");
</script>");
}
Show();
}
完成
当单击 GridView 控件中的按钮时发生次事件。
在单击 GridView 控件中的按钮时,将引发 RowCommand 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时执行一个自定义例程。
GridView 控件中的按钮也可调用该控件的某些内置功能。若要执行这些操作之一,请将按钮的 CommandName 属性设置为下表中的某个值。
CommandName 值
说明
“Cancel”
取消编辑操作并将 GridView 控件返回为只读模式。引发
“Delete”
删除当前记录。引发
“Edit”
将当前记录置于编辑模式。引发
“Page”
执行分页操作。将按钮的 CommandArgument 属性设置为“First”、“Last”、“Next”、“Prev”或页码,以指定要执行的分页操作类型。引发
“Select”
选择当前记录。引发
“Sort”
对 GridView 控件进行排序。引发
“Update”
更新数据源中的当前记录。引发
尽管单击上表中所列出的按钮时将引发 RowCommand 事件,但仍建议您使用该表中列出的事件来执行该操作。
将
注意GridViewCommandEventArgs 类未包含一个用于指示单击按钮所在行的属性。如果需要知道哪个行引发了事件,请使用
1.下面演示当单击gridview中的一个按钮时删除数据库中的一个记录。
添加一个模版列,编辑模版列,并加入一个linkButton ,在html里把linkButton的CommandName属性设置为del,然后双击gridview的rowCommand产生事情代码,代码如下:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="del") { //判断命令名
int index = Convert.ToInt32(e.CommandArgument); //获得该按钮在gridview中的位置,即第几行
GridViewRow row = GridView1.Rows[index]; //通过索引返回该行
string i= row.Cells[0].Text.ToString().Trim(); //获得该行第1列的数据项
DiaryColl.Delete(i);
Show();
}
}
2.下面演示添加自定义分页的用法
在html的gridview中添加分页模板,可以图形化设置,html代码如下:
<PagerTemplate>
共<asp:Label ID="Label1" runat="server"
<asp:LinkButton ID="LinkButton2" runat="server" ForeColor="White"
<asp:LinkButton ID="LinkButton3" runat="server" ForeColor="White"
</PagerTemplate>
下划线为重点要添加的,然后写rowCommand事件代码,如下:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "prev")
{
if (GridView1.PageIndex != 0)
{
GridView1.PageIndex--;
Show();
}
}
if (e.CommandName == "next")
{
GridView1.PageIndex++;
Show();
}
}
在 GridView 控件中将数据行绑定到数据时发生。
呈现 GridView 控件之前,该控件中的每一行必须绑定到数据源中的一条记录。将某个数据行(用
下面的代码示例演示如何使用 RowDataBound 事件在数据源中的字段值显示在 GridView 控件中之前修改该值。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int id=Convert.ToInt32(e.Row.Cells[4].Text); //获得新闻的类别ID
Category c = new Category();
e.Row.Cells[4].Text=c.GetNameById(id); //把新闻的类别ID转换成类别名
}
}