gridview rowcommand

来源:互联网 发布:中国电信云计算 编辑:程序博客网 时间:2024/04/28 14:58
GridView.RowCommand 事件 GridView.DataKeys 属性
2008-04-22 19:52

在单击 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 对象传递到事件处理方法,以便您可以确定被单击按钮的命令名和命令参数。

Note注意

GridViewCommandEventArgs 类未包含一个用于指示单击按钮所在行的属性。如果需要知道哪个行引发了事件,请使用 CommandArgument 属性将行的索引传给事件处理方法。

GridView.DataKeys 属性

属性值

类型:System.Web.UI.WebControls..::.DataKeyArray

一个 DataKeyArray,其中包含 GridView 控件中每一行的数据键。

当设置了 DataKeyNames 属性时,GridView 控件自动为该控件中的每一行创建一个 DataKey 对象。DataKey 对象包含在 DataKeyNames 属性中的指定的字段的值。DataKey 对象随后被添加到控件的 DataKeys 集合中。使用 DataKeys 属性检索 GridView 控件中特定数据行的 DataKey 对象。

说明:

可使用 SelectedDataKey 属性检索当前选中行的 DataKey 对象。还可以使用 SelectedValue 属性直接检索当前选中行的数据键值。

代码:前台加两个模板列后台代码如下
  1. protected void GridMeetRoom_RowDataBound(object sender, GridViewRowEventArgs e)
  2.         {
  3.             if (e.Row.RowType == DataControlRowType.DataRow)
  4.             {
  5.                 GridViewRow myrow = e.Row;
  6.                 string RoomId = GridMeetRoom.DataKeys[myrow.RowIndex].Value.ToString();
  7.                 LinkButton lnk = (LinkButton)e.Row.FindControl("lnkDetail");
  8.                 lnk.Attributes.Add("OnClick""window.showModalDialog('MeetRoomDetails.aspx?oomId=" + RoomId + "','','')");
  9.                 LinkButton lnk2 = (LinkButton)e.Row.Cells[3].FindControl("lnkBook");
  10.                 lnk2.CommandArgument = e.Row.RowIndex.ToString();
  11.                 Button btn = (Button)e.Row.Cells[3].FindControl("Book");
  12.                 btn.CommandArgument = e.Row.RowIndex.ToString();
  13.              }
  14.         }
  15. protected void GridMeetRoom_RowCommand(object sender, GridViewCommandEventArgs e)
  16.         {
  17.             if (e.CommandName == "Book")
  18.             {
  19.                 //string DataKeyName = Convert.ToString(e.CommandArgument);
  20.                 //int RowIndex = GridMeetRoom.SelectedRow.RowIndex;                
  21.                 //string RoomId = GridMeetRoom.DataKeys[RowIndex][DataKeyName].ToString();
  22.                 int index = Convert.ToInt32(e.CommandArgument);
  23.                 string RoomId = GridMeetRoom.DataKeys[index].Value.ToString();
  24.                 string url = "MeetRoomBook.aspx?RoomId=" + RoomId + "";
  25.                 Response.Redirect(url);
  26.             }
  27.             if (e.CommandName == "BookInfo")
  28.             {
  29.                 //string RoomId = GridMeetRoom.SelectedDataKey.ToString();
  30.                 int index = Convert.ToInt32(e.CommandArgument);
  31.                 string RoomId = GridMeetRoom.DataKeys[index].Value.ToString();
  32.                 string url = "MeetRoomBookInfo.aspx?RoomId=" + RoomId + "";
  33.                 Response.Redirect(url);
  34.             }
  35.         }

原创粉丝点击