GridViewPageEventHandler 委托
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示处理 PageIndexChanging 控件的 GridView 事件的方法。
public delegate void GridViewPageEventHandler(System::Object ^ sender, GridViewPageEventArgs ^ e);
public delegate void GridViewPageEventHandler(object sender, GridViewPageEventArgs e);
type GridViewPageEventHandler = delegate of obj * GridViewPageEventArgs -> unit
Public Delegate Sub GridViewPageEventHandler(sender As Object, e As GridViewPageEventArgs)
参数
- sender
- Object
事件源。
包含事件数据的 GridViewPageEventArgs 对象。
示例
下面的示例演示如何以编程方式向 控件的 GridView 事件添加GridViewPageEventHandler委托PageIndexChanging。
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Create a new GridView control.
GridView customersGridView = new GridView();
// Set the GridView object's properties.
customersGridView.ID = "CustomersGridView";
customersGridView.DataSourceID = "CustomersSource";
customersGridView.AutoGenerateColumns = true;
customersGridView.EmptyDataText = "No data available.";
customersGridView.AllowPaging = true;
customersGridView.AutoGenerateEditButton = true;
customersGridView.PagerSettings.Mode = PagerButtons.Numeric;
customersGridView.PagerSettings.Position = PagerPosition.Bottom;
customersGridView.PagerSettings.PageButtonCount = 10;
customersGridView.PagerStyle.BackColor = System.Drawing.Color.LightBlue;
customersGridView.DataKeyNames = new String[] { "CustomerID" };
// Programmatically register the event-handling methods.
customersGridView.PageIndexChanging += new GridViewPageEventHandler(this.CustomersGridView_PageIndexChanging);
customersGridView.RowCancelingEdit += new GridViewCancelEditEventHandler(this.CustomersGridView_RowCancelingEdit);
// Add the GridView control to the Controls collection
// of the PlaceHolder control.
GridViewPlaceHolder.Controls.Add(customersGridView);
}
void CustomersGridView_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
// User the sender parameter to retrieve the GridView control
// that raised the event.
GridView customersGridView = (GridView)sender;
// Cancel the paging operation if the user attempts to navigate
// to another page while the GridView control is in edit mode.
if (customersGridView.EditIndex != -1)
{
// Use the cancel property to cancel the paging operation.
e.Cancel = true;
// Display an error message.
int newPageNumber = e.NewPageIndex + 1;
Message.Text = "Please update the record before moving to page " +
newPageNumber.ToString() + ".";
}
else
{
// Clear the error message.
Message.Text = "";
}
}
void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
{
// Clear the error message.
Message.Text = "";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewPageEventHandler Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewPageEventHandler Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<asp:placeholder id="GridViewPlaceHolder"
runat="server" />
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Create a new GridView control.
Dim customersGridView As New GridView()
' Set the GridView object's properties.
customersGridView.ID = "CustomersGridView"
customersGridView.DataSourceID = "CustomersSource"
customersGridView.AutoGenerateColumns = True
customersGridView.EmptyDataText = "No data available."
customersGridView.AllowPaging = True
customersGridView.AutoGenerateEditButton = True
customersGridView.PagerSettings.Mode = PagerButtons.Numeric
customersGridView.PagerSettings.Position = PagerPosition.Bottom
customersGridView.PagerSettings.PageButtonCount = 10
customersGridView.PagerStyle.BackColor = System.Drawing.Color.LightBlue
Dim keyArray() As String = {"CustomerID"}
customersGridView.DataKeyNames = keyArray
' Programmatically register the event-handling methods.
AddHandler customersGridView.PageIndexChanging, AddressOf CustomersGridView_PageIndexChanging
AddHandler customersGridView.RowCancelingEdit, AddressOf CustomersGridView_RowCancelingEdit
' Add the GridView control to the Controls collection
' of the PlaceHolder control.
GridViewPlaceHolder.Controls.Add(customersGridView)
End Sub
Sub CustomersGridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
' User the sender parameter to retrieve the GridView control
' that raised the event.
Dim customersGridView As GridView = CType(sender, GridView)
' Cancel the paging operation if the user attempts to navigate
' to another page while the GridView control is in edit mode.
If customersGridView.EditIndex <> -1 Then
' Use the cancel property to cancel the paging operation.
e.Cancel = True
' Display an error message.
Dim newPageNumber As Integer = e.NewPageIndex + 1
Message.Text = "Please update the record before moving to page " & _
newPageNumber.ToString() & "."
Else
' Clear the error message.
Message.Text = ""
End If
End Sub
Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
' Clear the error message.
Message.Text = ""
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewPageEventHandler Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewPageEventHandler Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<asp:placeholder id="GridViewPlaceHolder"
runat="server" />
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
以下示例演示如何以声明方式向 控件的 GridView 事件添加GridViewPageEventHandler委托PageIndexChanging。
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void CustomersGridView_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
// Cancel the paging operation if the user attempts to navigate
// to another page while the GridView control is in edit mode.
if (CustomersGridView.EditIndex != -1)
{
// Use the Cancel property to cancel the paging operation.
e.Cancel = true;
// Display an error message.
int newPageNumber = e.NewPageIndex + 1;
Message.Text = "Please update the record before moving to page " +
newPageNumber.ToString() + ".";
}
else
{
// Clear the error message.
Message.Text = "";
}
}
void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
{
// Clear the error message.
Message.Text = "";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView PageIndexChanging Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView PageIndexChanging Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="true"
emptydatatext="No data available."
allowpaging="true"
autogenerateeditbutton="true"
datakeynames="CustomerID"
onpageindexchanging="CustomersGridView_PageIndexChanging"
onrowcancelingedit="CustomersGridView_RowCancelingEdit"
runat="server">
<pagersettings mode="Numeric"
position="Bottom"
pagebuttoncount="10"/>
<pagerstyle backcolor="LightBlue"/>
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub CustomersGridView_PageIndexChanging(ByVal sender As Object, ByVal e As GridViewPageEventArgs)
' Cancel the paging operation if the user attempts to navigate
' to another page while the GridView control is in edit mode.
If CustomersGridView.EditIndex <> -1 Then
' Use the Cancel property to cancel the paging operation.
e.Cancel = True
' Display an error message.
Dim newPageNumber As Integer = e.NewPageIndex + 1
Message.Text = "Please update the record before moving to page " & _
newPageNumber.ToString() & "."
Else
' Clear the error message.
Message.Text = ""
End If
End Sub
Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
' Clear the error message.
Message.Text = ""
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView PageIndexChanging Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView PageIndexChanging Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSource"
autogeneratecolumns="true"
emptydatatext="No data available."
allowpaging="true"
autogenerateeditbutton="true"
datakeynames="CustomerID"
onpageindexchanging="CustomersGridView_PageIndexChanging"
onrowcancelingedit="CustomersGridView_RowCancelingEdit"
runat="server">
<pagersettings mode="Numeric"
position="Bottom"
pagebuttoncount="10"/>
<pagerstyle backcolor="LightBlue"/>
</asp:gridview>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSource"
selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
注解
GridView当页导航按钮 (其属性设置为“Page”的按钮CommandName
时,控件将引发 PageIndexChanging 事件) 控件内的单击,但在控件GridView处理分页操作之前。 这允许你提供一个事件处理方法,该方法执行自定义例程,例如,每当发生此事件时取消分页操作。
注意
寻呼按钮通常位于控件的 GridView 页导航行中。
创建 GridViewPageEventHandler 委托时,需要标识将处理该事件的方法。 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。 有关事件处理程序委托的详细信息,请参阅 处理和引发事件。
扩展方法
GetMethodInfo(Delegate) |
获取指示指定委托表示的方法的对象。 |