GridViewUpdatedEventHandler 代理人
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
代表處理 RowUpdated 控制事件 GridView 的方法。
public delegate void GridViewUpdatedEventHandler(System::Object ^ sender, GridViewUpdatedEventArgs ^ e);
public delegate void GridViewUpdatedEventHandler(object sender, GridViewUpdatedEventArgs e);
type GridViewUpdatedEventHandler = delegate of obj * GridViewUpdatedEventArgs -> unit
Public Delegate Sub GridViewUpdatedEventHandler(sender As Object, e As GridViewUpdatedEventArgs)
參數
- sender
- Object
事件的 來源。
GridViewUpdatedEventArgs A 包含事件資料。
範例
以下範例示範如何在控制事件GridViewUpdatedEventHandler中程式化地新增RowUpdated代理GridView。
<%@ 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 control's properties.
customersGridView.ID = "CustomersGridView";
customersGridView.DataSourceID = "CustomersSqlDataSource";
customersGridView.AutoGenerateColumns = true;
customersGridView.AutoGenerateEditButton = true;
customersGridView.AllowPaging = true;
customersGridView.DataKeyNames = new String[1] { "CustomerID" };
// Programmatically register the event-handling method
// for the RowDeleted event of the GridView control.
customersGridView.RowUpdated += new GridViewUpdatedEventHandler(this.CustomersGridView_RowUpdated);
customersGridView.RowCancelingEdit += new GridViewCancelEditEventHandler(this.CustomersGridView_RowCancelingEdit);
customersGridView.RowEditing += new GridViewEditEventHandler(this.CustomersGridView_RowEditing);
// Add the GridView control to the Controls collection
// of the PlaceHolder control.
GridViewPlaceHolder.Controls.Add(customersGridView);
}
void CustomersGridView_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
{
// Indicate whether the update operation succeeded.
if(e.Exception == null)
{
Message.Text = "Row updated successfully.";
}
else
{
e.ExceptionHandled = true;
Message.Text = "An error occurred while attempting to update the row.";
}
}
void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
{
// The update operation was canceled. Clear the message label.
Message.Text = "";
}
void CustomersGridView_RowEditing(Object sender, GridViewEditEventArgs e)
{
// The GridView control is entering edit mode. Clear the message label.
Message.Text = "";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewUpdatedEventHandler Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewUpdatedEventHandler 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="CustomersSqlDataSource"
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">
</asp:sqldatasource>
</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 control's properties.
customersGridView.ID = "CustomersGridView"
customersGridView.DataSourceID = "CustomersSqlDataSource"
customersGridView.AutoGenerateColumns = True
customersGridView.AutoGenerateEditButton = True
customersGridView.AllowPaging = True
Dim keyArray() As String = {"CustomerID"}
customersGridView.DataKeyNames = keyArray
' Programmatically register the event-handling method
' for the RowDeleted event of the GridView control.
AddHandler customersGridView.RowUpdated, AddressOf CustomersGridView_RowUpdated
AddHandler customersGridView.RowCancelingEdit, AddressOf CustomersGridView_RowCancelingEdit
AddHandler customersGridView.RowEditing, AddressOf CustomersGridView_RowEditing
' Add the GridView control to the Controls collection
' of the PlaceHolder control.
GridViewPlaceHolder.Controls.Add(customersGridView)
End Sub
Sub CustomersGridView_RowUpdated(ByVal sender As Object, ByVal e As GridViewUpdatedEventArgs)
' Indicate whether the update operation succeeded.
If e.Exception Is Nothing Then
Message.Text = "Row updated successfully."
Else
e.ExceptionHandled = True
Message.Text = "An error occurred while attempting to update the row."
End If
End Sub
Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
' The update operation was canceled. Clear the message label.
Message.Text = ""
End Sub
Sub CustomersGridView_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
' The GridView control is entering edit mode. Clear the message label.
Message.Text = ""
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView GridViewUpdatedEventHandler Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView GridViewUpdatedEventHandler 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="CustomersSqlDataSource"
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">
</asp:sqldatasource>
</form>
</body>
</html>
以下範例示範如何在控制事件GridViewUpdatedEventHandler中宣告性地新增RowUpdatedGridView代理。
<%@ 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_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
{
// Indicate whether the update operation succeeded.
if(e.Exception == null)
{
Message.Text = "Row updated successfully.";
}
else
{
e.ExceptionHandled = true;
Message.Text = "An error occurred while attempting to update the row.";
}
}
void CustomersGridView_RowCancelingEdit(Object sender, GridViewCancelEditEventArgs e)
{
// The update operation was canceled. Clear the message label.
Message.Text = "";
}
void CustomersGridView_RowEditing(Object sender, GridViewEditEventArgs e)
{
// The GridView control is entering edit mode. Clear the message label.
Message.Text = "";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView RowUpdated Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView RowUpdated Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames property as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onrowupdated="CustomersGridView_RowUpdated"
onrowcancelingedit="CustomersGridView_RowCancelingEdit"
onrowediting="CustomersGridView_RowEditing"
runat="server">
</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="CustomersSqlDataSource"
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">
</asp:sqldatasource>
</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_RowUpdated(ByVal sender As Object, ByVal e As GridViewUpdatedEventArgs)
' Indicate whether the update operation succeeded.
If e.Exception Is Nothing Then
Message.Text = "Row updated successfully."
Else
e.ExceptionHandled = True
Message.Text = "An error occurred while attempting to update the row."
End If
End Sub
Sub CustomersGridView_RowCancelingEdit(ByVal sender As Object, ByVal e As GridViewCancelEditEventArgs)
' The update operation was canceled. Clear the message label.
Message.Text = ""
End Sub
Sub CustomersGridView_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
' The GridView control is entering edit mode. Clear the message label.
Message.Text = ""
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridView RowUpdated Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridView RowUpdated Example</h3>
<asp:label id="Message"
forecolor="Red"
runat="server"/>
<br/>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames property as read-only. -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="CustomersGridView"
datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true"
autogenerateeditbutton="true"
allowpaging="true"
datakeynames="CustomerID"
onrowupdated="CustomersGridView_RowUpdated"
onrowcancelingedit="CustomersGridView_RowCancelingEdit"
onrowediting="CustomersGridView_RowEditing"
runat="server">
</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="CustomersSqlDataSource"
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">
</asp:sqldatasource>
</form>
</body>
</html>
備註
GridView當控制項內的 Update 按鈕(屬性RowUpdated設為「Update」)被點擊,但控制項更新記錄後CommandName,控制項會觸發GridView事件。 這讓你能提供一個事件處理方法,執行自訂例程,例如在更新操作發生時檢查結果。
當你建立 GridViewUpdatedEventHandler 代理人時,你就能確定處理事件的方法。 要將事件與你的事件處理器關聯,請將該代理的實例加入事件中。 事件處理程序會在事件發生時被呼叫,除非你移除代理。 欲了解更多關於事件處理代表的資訊,請參閱 「處理與提升事件」。
擴充方法
| 名稱 | Description |
|---|---|
| GetMethodInfo(Delegate) |
取得一個代表指定代理所代表方法的物件。 |