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”
删除当前记录。引发 RowDeletingRowDeleted 事件。
“Edit”
将当前记录置于编辑模式。引发 RowEditing 事件。
“Page”
执行分页操作。将按钮的 CommandArgument 属性设置为“First”、“Last”、“Next”、“Prev”或页码,以指定要执行的分页操作类型。引发 PageIndexChangingPageIndexChanged 事件。
“Select”
选择当前记录。引发 SelectedIndexChangingSelectedIndexChanged 事件。
“Sort”
对 GridView 控件进行排序。引发 SortingSorted 事件。
“Update”
更新数据源中的当前记录。引发 RowUpdatingRowUpdated 事件。
尽管单击上表中所列出的按钮时将引发 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>页 &nbsp; &nbsp;
                 &nbsp;&nbsp;
                 <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转换成类别名
         }
   }
原文地址:https://www.cnblogs.com/sshh/p/1368929.html