GridViewUpdateEventArgs クラス
アセンブリ: System.Web (system.web.dll 内)
構文
GridView コントロールは、行の Update ボタンがクリックされた場合に、GridView コントロールで行を更新する前に RowUpdating イベントを発生させます。これにより、このイベントが発生するたびにカスタム ルーチン (更新操作のキャンセルなど) を実行するイベント処理メソッドを提供できます。
GridViewUpdateEventArgs オブジェクトがイベント処理メソッドに渡されることにより、現在の行のインデックスを確認したり、更新操作をキャンセルする必要があることを示したりできます。更新操作をキャンセルするには、GridViewUpdateEventArgs オブジェクトの Cancel プロパティを true に設定します。また、必要に応じて、値がデータ ソースに渡される前に Keys、OldValues、および NewValues の各コレクションを操作することもできます。これらのコレクションは、ユーザーが入力した値をデータ ソースに格納する前に HTML エンコードする場合によく使用されます。これは、スクリプト注入攻撃を防ぐために役立ちます。
イベント処理の詳細については、「イベントの利用」を参照してください。
GridViewUpdateEventArgs のインスタンスの初期プロパティ値の一覧については、GridViewSelectEventArgs コンストラクタのトピックを参照してください。
イベント処理メソッドに渡された GridViewUpdateEventArgs オブジェクトを使用して、ユーザーが入力したすべての値をデータ ソースの更新前に HTML エンコードする方法を次の例に示します。
<%@ Page language="VB" %> <script runat="server"> Sub CustomersGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) ' Use the CopyTo method to copy the DictionaryEntry objects in the ' NewValues collection to an array. Dim records(e.NewValues.Count - 1) As DictionaryEntry e.NewValues.CopyTo(records, 0) ' Iterate through the array and HTML encode all user-provided values ' before updating the data source. Dim entry As DictionaryEntry For Each entry In records e.NewValues(entry.Key) = Server.HtmlEncode(entry.Value.ToString()) Next End Sub </script> <html> <body> <form runat="server"> <h3>GridView RowUpdating Example</h3> <!-- 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" onrowupdating="CustomersGridView_RowUpdating" 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="C#" %> <script runat="server"> void CustomersGridView_RowUpdating(Object sender, GridViewUpdateEventArgs e) { // Iterate through the NewValues collection and HTML encode all // user-provided values before updating the data source. foreach (DictionaryEntry entry in e.NewValues) { e.NewValues[entry.Key] = Server.HtmlEncode(entry.Value.ToString()); } } </script> <html> <body> <form runat="server"> <h3>GridView RowUpdating Example</h3> <!-- 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" onrowupdating="CustomersGridView_RowUpdating" 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>
System.EventArgs
System.ComponentModel.CancelEventArgs
System.Web.UI.WebControls.GridViewUpdateEventArgs
プラットフォーム
Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- GridViewUpdateEventArgs クラスのページへのリンク