DataList.OnCancelCommand メソッド
アセンブリ: System.Web (system.web.dll 内)

Dim e As DataListCommandEventArgs Me.OnCancelCommand(e)

OnCancelCommand メソッドを使用して CancelCommand イベントのカスタム ハンドラを提供します。
CancelCommand イベントは、DataList コントロールの項目に対して Cancel ボタンがクリックされたときに発生します。
CancelCommand イベントの通常のハンドラは EditItemIndex プロパティを -1 (項目の選択解除) に設定し、データを DataList コントロールに再び関連付けます。
![]() |
---|
このコントロールは、ユーザー入力を表示するために使用できます。ユーザー入力には悪意のあるクライアント スクリプトが含まれている可能性があります。アプリケーションに表示する前に、クライアントから送信された実行スクリプト、SQL ステートメントなどのコードの情報はすべて検証してください。入力テキストをコントロールに表示する前に、検証コントロールを使用してユーザー入力を検証できます。ASP.NET には入力要求の検証機能があり、ユーザー入力の中のスクリプトおよび HTML をブロックできます。詳細については、「標準コントロールのセキュリティ保護」、「方法 : HTML エンコーディングを文字列に適用して Web アプリケーションをスクリプトによる攻略から保護する」、および「ASP.NET Web ページにおけるユーザー入力の検証」を参照してください。 |
イベントが発生すると、デリゲートを使用してイベント ハンドラが呼び出されます。詳細については、「方法 : Web フォーム アプリケーションでイベントを利用する」を参照してください。
OnCancelCommand メソッドを使用すると、デリゲートを結び付けずに、派生クラスでイベントを処理することもできます。派生クラスでイベントを処理する場合は、この手法をお勧めします。
継承時の注意 派生クラスで OnCancelCommand をオーバーライドする場合は、登録されているデリゲートがイベントを受け取ることができるように、基本クラスの OnCancelCommand メソッドを呼び出してください。
CancelCommand イベントのハンドラを指定およびコード化する方法を次のコード例に示します。この例では、Cancel ボタンをクリックすると DataList コントロールの項目に対して行われた編集がキャンセルされます。
![]() |
---|
次のコード サンプルはシングルファイル コード モデルを使用しており、分離コード ファイルに直接コピーされた場合は正常に動作しない可能性があります。このコード サンプルは、拡張子が .aspx の空のテキスト ファイルにコピーする必要があります。Web フォームのコード モデルの詳細については、「ASP.NET Web ページのコード モデル」を参照してください。 |
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> ' The Cart and CartView objects temporarily store the data source ' for the DataList control while the page is being processed. Dim Cart As DataTable = New DataTable() Dim CartView As DataView Sub Page_Load(sende As Object, e As EventArgs) ' With a database, use an select query to retrieve the data. ' Because the data source in this example is an in-memory ' DataTable, retrieve the data from session state if it exists; ' otherwise, create the data source. GetSource() ' The DataGrid control maintains state between posts to the server; ' it only needs to be bound to a data source the first time the ' page is loaded or when the data source is updated. If Not IsPostBack Then BindList() End If End Sub Sub BindList() ' Set the data source and bind to the DataList control. ItemsList.DataSource = CartView ItemsList.DataBind() End Sub Sub GetSource() ' For this example, the data source is a DataTable that ' is stored in session state. If the data source does not exist , ' create it; otherwise, load the data. If Session("ShoppingCart") Is Nothing Then ' Create the sample data. Dim dr As DataRow ' Define the columns of the table. Cart.Columns.Add(new DataColumn("Qty", GetType(Int32))) Cart.Columns.Add(new DataColumn("Item", GetType(String))) Cart.Columns.Add(new DataColumn("Price", GetType(Double))) ' Store the table in session state to persist its values ' between posts to the server. Session("ShoppingCart") = Cart ' Populate the DataTable with sample data. Dim i As Integer For i = 1 To 9 dr = Cart.NewRow() If (i Mod 2) <> 0 Then dr(0) = 2 Else dr(0) = 1 End If dr(1) = "Item " & i.ToString() dr(2) = (1.23 * (i + 1)) Cart.Rows.Add(dr) Next i Else ' Retrieve the sample data from session state. Cart = CType(Session("ShoppingCart"), DataTable) End If ' Create a DataView and specify the field to sort by. CartView = New DataView(Cart) CartView.Sort="Item" Return End Sub Sub Edit_Command(sender As Object, e As DataListCommandEventArgs) ' Set the EditItemIndex property to the index of the item clicked ' in the DataList control to enable editing for that item. Be sure ' to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = e.Item.ItemIndex BindList() End Sub Sub Cancel_Command(sender As Object, e As DataListCommandEventArgs) ' Set the EditItemIndex property to -1 to exit editing mode. Be sure ' to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1 BindList() End Sub Sub Delete_Command(sender As Object, e As DataListCommandEventArgs) ' Retrieve the name of the item to remove. Dim item As String = (CType(e.Item.FindControl("ItemLabel"), Label)).Text ' Filter the CartView for the selected item and remove it from ' the data source. CartView.RowFilter = "Item='" & item & "'" If CartView.Count > 0 Then CartView.Delete(0) End If CartView.RowFilter = "" ' Set the EditItemIndex property to -1 to exit editing mode. Be sure ' to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1 BindList() End Sub Sub Update_Command(sender As Object, e As DataListCommandEventArgs) ' Retrieve the updated values from the selected item. Dim item As String = _ (CType(e.Item.FindControl("ItemLabel"), Label)).Text Dim qty As String = _ (CType(e.Item.FindControl("QtyTextBox"), TextBox)).Text Dim price As String = _ (CType(e.Item.FindControl("PriceTextBox"), TextBox)).Text ' With a database, use an update command to update the data. ' Because the data source in this example is an in-memory ' DataTable, delete the old row and replace it with a new one. ' Filter the CartView for the selected item and remove it from ' the data source. CartView.RowFilter = "Item='" & item & "'" If CartView.Count > 0 Then CartView.Delete(0) End If CartView.RowFilter = "" ' *************************************************************** ' Insert data validation code here. Make sure to validate the ' values entered by the user before converting to the appropriate ' data types and updating the data source. ' *************************************************************** ' Add a new entry to replace the previous item. Dim dr As DataRow = Cart.NewRow() dr(0) = qty dr(1) = item ' If necessary, remove the '$' character from the price before ' converting the price to a Double. If price.Chars(0) = "$" Then dr(2) = Convert.ToDouble(price.Substring(1)) Else dr(2) = Convert.ToDouble(price) End If Cart.Rows.Add(dr) ' Set the EditItemIndex property to -1 to exit editing mode. ' Be sure to rebind the DataList to the data source to refresh ' the control. ItemsList.EditItemIndex = -1 BindList() End Sub </script> </head> <body> <form runat=server> <h3>DataList Edit Example</h3> Click <b>Edit</b> to edit the values of the item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" RepeatColumns="3" RepeatDirection="Horizontal" CellPadding="3" CellSpacing="0" OnEditCommand="Edit_Command" OnUpdateCommand="Update_Command" OnDeleteCommand="Delete_Command" OnCancelCommand="Cancel_Command" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> Item: <%# DataBinder.Eval(Container.DataItem, "Item") %> <br> Quantity: <%# DataBinder.Eval(Container.DataItem, "Qty") %> <br> Price: <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %> <br> <asp:LinkButton id="EditButton" Text="Edit" CommandName="Edit" runat="server"/> </ItemTemplate> <EditItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:TextBox id="QtyTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:TextBox id="PriceTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> <br> <asp:LinkButton id="UpdateButton" Text="Update" CommandName="Update" runat="server"/> <asp:LinkButton id="DeleteButton" Text="Delete" CommandName="Delete" runat="server"/> <asp:LinkButton id="CancelButton" Text="Cancel" CommandName="Cancel" runat="server"/> </EditItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> // The Cart and CartView objects temporarily store the data source // for the DataList control while the page is being processed. DataTable Cart = new DataTable(); DataView CartView; void Page_Load(Object sender, EventArgs e) { // With a database, use an select query to retrieve the data. // Because the data source in this example is an in-memory // DataTable, retrieve the data from session state if it exists; // otherwise, create the data source. GetSource(); // The DataList control maintains state between posts to the server; // it only needs to be bound to a data source the first time the // page is loaded or when the data source is updated. if (!IsPostBack) { BindList(); } } void BindList() { // Set the data source and bind to the DataList control. ItemsList.DataSource = CartView; ItemsList.DataBind(); } void GetSource() { // For this example, the data source is a DataTable that // is stored in session state. If the data source does not exist, // create it; otherwise, load the data. if (Session["ShoppingCart"] == null) { // Create the sample data. DataRow dr; // Define the columns of the table. Cart.Columns.Add(new DataColumn("Qty", typeof(Int32))); Cart.Columns.Add(new DataColumn("Item", typeof(String))); Cart.Columns.Add(new DataColumn("Price", typeof(Double))); // Store the table in session state to persist its values // between posts to the server. Session["ShoppingCart"] = Cart; // Populate the DataTable with sample data. for (int i = 1; i <= 9; i++) { dr = Cart.NewRow(); if (i % 2 != 0) { dr[0] = 2; } else { dr[0] = 1; } dr[1] = "Item " + i.ToString(); dr[2] = (1.23 * (i + 1)); Cart.Rows.Add(dr); } } else { // Retrieve the sample data from session state. Cart = (DataTable)Session["ShoppingCart"]; } // Create a DataView and specify the field to sort by. CartView = new DataView(Cart); CartView.Sort="Item"; return; } void Edit_Command(Object sender, DataListCommandEventArgs e) { // Set the EditItemIndex property to the index of the item clicked // in the DataList control to enable editing for that item. Be sure // to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = e.Item.ItemIndex; BindList(); } void Cancel_Command(Object sender, DataListCommandEventArgs e) { // Set the EditItemIndex property to -1 to exit editing mode. Be sure // to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1; BindList(); } void Delete_Command(Object sender, DataListCommandEventArgs e) { // Retrieve the name of the item to remove. String item = ((Label)e.Item.FindControl("ItemLabel")).Text; // Filter the CartView for the selected item and remove it from // the data source. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) { CartView.Delete(0); } CartView.RowFilter = ""; // Set the EditItemIndex property to -1 to exit editing mode. Be sure // to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1; BindList(); } void Update_Command(Object sender, DataListCommandEventArgs e) { // Retrieve the updated values from the selected item. String item = ((Label)e.Item.FindControl("ItemLabel")).Text; String qty = ((TextBox)e.Item.FindControl("QtyTextBox")).Text; String price = ((TextBox)e.Item.FindControl("PriceTextBox")).Text; // With a database, use an update command to update the data. // Because the data source in this example is an in-memory // DataTable, delete the old row and replace it with a new one. // Filter the CartView for the selected item and remove it from // the data source. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) { CartView.Delete(0); } CartView.RowFilter = ""; // *************************************************************** // Insert data validation code here. Make sure to validate the // values entered by the user before converting to the appropriate // data types and updating the data source. // *************************************************************** // Add a new entry to replace the previous item. DataRow dr = Cart.NewRow(); dr[0] = qty; dr[1] = item; // If necessary, remove the '$' character from the price before // converting the price to a Double. if(price[0] == '$') { dr[2] = Convert.ToDouble(price.Substring(1)); } else { dr[2] = Convert.ToDouble(price); } Cart.Rows.Add(dr); // Set the EditItemIndex property to -1 to exit editing mode. // Be sure to rebind the DataList to the data source to refresh // the control. ItemsList.EditItemIndex = -1; BindList(); } </script> </head> <body> <form runat=server> <h3>DataList Edit Example</h3> Click <b>Edit</b> to edit the values of the item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" RepeatColumns="3" RepeatDirection="Horizontal" CellPadding="3" CellSpacing="0" OnEditCommand="Edit_Command" OnUpdateCommand="Update_Command" OnDeleteCommand="Delete_Command" OnCancelCommand="Cancel_Command" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> Item: <%# DataBinder.Eval(Container.DataItem, "Item") %> <br> Quantity: <%# DataBinder.Eval(Container.DataItem, "Qty") %> <br> Price: <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %> <br> <asp:LinkButton id="EditButton" Text="Edit" CommandName="Edit" runat="server"/> </ItemTemplate> <EditItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:TextBox id="QtyTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:TextBox id="PriceTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> <br> <asp:LinkButton id="UpdateButton" Text="Update" CommandName="Update" runat="server"/> <asp:LinkButton id="DeleteButton" Text="Delete" CommandName="Delete" runat="server"/> <asp:LinkButton id="CancelButton" Text="Cancel" CommandName="Cancel" runat="server"/> </EditItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> ' The Cart and CartView objects temporarily store the data source ' for the DataList control while the page is being processed. Dim Cart As DataTable = New DataTable() Dim CartView As DataView Sub Page_Load(sende As Object, e As EventArgs) ' With a database, use an select query to retrieve the data. ' Because the data source in this example is an in-memory ' DataTable, retrieve the data from session state if it exists; ' otherwise, create the data source. GetSource() ' The DataGrid control maintains state between posts to the server; ' it only needs to be bound to a data source the first time the ' page is loaded or when the data source is updated. If Not IsPostBack Then BindList() End If ' Manually register the event-handling methods. AddHandler ItemsList.EditCommand, AddressOf Edit_Command AddHandler ItemsList.UpdateCommand, AddressOf Update_Command AddHandler ItemsList.DeleteCommand, AddressOf Delete_Command AddHandler ItemsList.CancelCommand, AddressOf Cancel_Command End Sub Sub BindList() ' Set the data source and bind to the DataList control. ItemsList.DataSource = CartView ItemsList.DataBind() End Sub Sub GetSource() ' For this example, the data source is a DataTable that ' is stored in session state. If the data source does not exist , ' create it; otherwise, load the data. If Session("ShoppingCart") Is Nothing Then ' Create the sample data. Dim dr As DataRow ' Define the columns of the table. Cart.Columns.Add(new DataColumn("Qty", GetType(Int32))) Cart.Columns.Add(new DataColumn("Item", GetType(String))) Cart.Columns.Add(new DataColumn("Price", GetType(Double))) ' Store the table in session state to persist its values ' between posts to the server. Session("ShoppingCart") = Cart ' Populate the DataTable with sample data. Dim i As Integer For i = 1 To 9 dr = Cart.NewRow() If (i Mod 2) <> 0 Then dr(0) = 2 Else dr(0) = 1 End If dr(1) = "Item " & i.ToString() dr(2) = (1.23 * (i + 1)) Cart.Rows.Add(dr) Next i Else ' Retrieve the sample data from session state. Cart = CType(Session("ShoppingCart"), DataTable) End If ' Create a DataView and specify the field to sort by. CartView = New DataView(Cart) CartView.Sort="Item" Return End Sub Sub Edit_Command(sender As Object, e As DataListCommandEventArgs) ' Set the EditItemIndex property to the index of the item clicked ' in the DataList control to enable editing for that item. Be sure ' to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = e.Item.ItemIndex BindList() End Sub Sub Cancel_Command(sender As Object, e As DataListCommandEventArgs) ' Set the EditItemIndex property to -1 to exit editing mode. Be sure ' to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1 BindList() End Sub Sub Delete_Command(sender As Object, e As DataListCommandEventArgs) ' Retrieve the name of the item to remove. Dim item As String = (CType(e.Item.FindControl("ItemLabel"), Label)).Text ' Filter the CartView for the selected item and remove it from ' the data source. CartView.RowFilter = "Item='" & item & "'" If CartView.Count > 0 Then CartView.Delete(0) End If CartView.RowFilter = "" ' Set the EditItemIndex property to -1 to exit editing mode. Be sure ' to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1 BindList() End Sub Sub Update_Command(sender As Object, e As DataListCommandEventArgs) ' Retrieve the updated values from the selected item. Dim item As String = _ (CType(e.Item.FindControl("ItemLabel"), Label)).Text Dim qty As String = _ (CType(e.Item.FindControl("QtyTextBox"), TextBox)).Text Dim price As String = _ (CType(e.Item.FindControl("PriceTextBox"), TextBox)).Text ' With a database, use an update command to update the data. ' Because the data source in this example is an in-memory ' DataTable, delete the old row and replace it with a new one. ' Filter the CartView for the selected item and remove it from ' the data source. CartView.RowFilter = "Item='" & item & "'" If CartView.Count > 0 Then CartView.Delete(0) End If CartView.RowFilter = "" ' *************************************************************** ' Insert data validation code here. Make sure to validate the ' values entered by the user before converting to the appropriate ' data types and updating the data source. ' *************************************************************** ' Add a new entry to replace the previous item. Dim dr As DataRow = Cart.NewRow() dr(0) = qty dr(1) = item ' If necessary, remove the '$' character from the price before ' converting the price to a Double. If price.Chars(0) = "$" Then dr(2) = Convert.ToDouble(price.Substring(1)) Else dr(2) = Convert.ToDouble(price) End If Cart.Rows.Add(dr) ' Set the EditItemIndex property to -1 to exit editing mode. ' Be sure to rebind the DataList to the data source to refresh ' the control. ItemsList.EditItemIndex = -1 BindList() End Sub </script> </head> <body> <form runat=server> <h3>DataList Edit Example</h3> Click <b>Edit</b> to edit the values of the item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" RepeatColumns="3" RepeatDirection="Horizontal" CellPadding="3" CellSpacing="0" OnEditCommand="Edit_Command" OnUpdateCommand="Update_Command" OnDeleteCommand="Delete_Command" OnCancelCommand="Cancel_Command" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> Item: <%# DataBinder.Eval(Container.DataItem, "Item") %> <br> Quantity: <%# DataBinder.Eval(Container.DataItem, "Qty") %> <br> Price: <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %> <br> <asp:LinkButton id="EditButton" Text="Edit" CommandName="Edit" runat="server"/> </ItemTemplate> <EditItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:TextBox id="QtyTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:TextBox id="PriceTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> <br> <asp:LinkButton id="UpdateButton" Text="Update" CommandName="Update" runat="server"/> <asp:LinkButton id="DeleteButton" Text="Delete" CommandName="Delete" runat="server"/> <asp:LinkButton id="CancelButton" Text="Cancel" CommandName="Cancel" runat="server"/> </EditItemTemplate> </asp:DataList> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <head> <script runat="server"> // The Cart and CartView objects temporarily store the data source // for the DataList control while the page is being processed. DataTable Cart = new DataTable(); DataView CartView; void Page_Load(Object sender, EventArgs e) { // With a database, use an select query to retrieve the data. // Because the data source in this example is an in-memory // DataTable, retrieve the data from session state if it exists; // otherwise, create the data source. GetSource(); // The DataList control maintains state between posts to the server; // it only needs to be bound to a data source the first time the // page is loaded or when the data source is updated. if (!IsPostBack) { BindList(); } // Manually register the event-handling methods. ItemsList.EditCommand += new DataListCommandEventHandler(this.Edit_Command); ItemsList.UpdateCommand += new DataListCommandEventHandler(this.Update_Command); ItemsList.DeleteCommand += new DataListCommandEventHandler(this.Delete_Command); ItemsList.CancelCommand += new DataListCommandEventHandler(this.Cancel_Command); } void BindList() { // Set the data source and bind to the DataList control. ItemsList.DataSource = CartView; ItemsList.DataBind(); } void GetSource() { // For this example, the data source is a DataTable that // is stored in session state. If the data source does not exist, // create it; otherwise, load the data. if (Session["ShoppingCart"] == null) { // Create the sample data. DataRow dr; // Define the columns of the table. Cart.Columns.Add(new DataColumn("Qty", typeof(Int32))); Cart.Columns.Add(new DataColumn("Item", typeof(String))); Cart.Columns.Add(new DataColumn("Price", typeof(Double))); // Store the table in session state to persist its values // between posts to the server. Session["ShoppingCart"] = Cart; // Populate the DataTable with sample data. for (int i = 1; i <= 9; i++) { dr = Cart.NewRow(); if (i % 2 != 0) { dr[0] = 2; } else { dr[0] = 1; } dr[1] = "Item " + i.ToString(); dr[2] = (1.23 * (i + 1)); Cart.Rows.Add(dr); } } else { // Retrieve the sample data from session state. Cart = (DataTable)Session["ShoppingCart"]; } // Create a DataView and specify the field to sort by. CartView = new DataView(Cart); CartView.Sort="Item"; return; } void Edit_Command(Object sender, DataListCommandEventArgs e) { // Set the EditItemIndex property to the index of the item clicked // in the DataList control to enable editing for that item. Be sure // to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = e.Item.ItemIndex; BindList(); } void Cancel_Command(Object sender, DataListCommandEventArgs e) { // Set the EditItemIndex property to -1 to exit editing mode. Be sure // to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1; BindList(); } void Delete_Command(Object sender, DataListCommandEventArgs e) { // Retrieve the name of the item to remove. String item = ((Label)e.Item.FindControl("ItemLabel")).Text; // Filter the CartView for the selected item and remove it from // the data source. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) { CartView.Delete(0); } CartView.RowFilter = ""; // Set the EditItemIndex property to -1 to exit editing mode. Be sure // to rebind the DataList to the data source to refresh the control. ItemsList.EditItemIndex = -1; BindList(); } void Update_Command(Object sender, DataListCommandEventArgs e) { // Retrieve the updated values from the selected item. String item = ((Label)e.Item.FindControl("ItemLabel")).Text; String qty = ((TextBox)e.Item.FindControl("QtyTextBox")).Text; String price = ((TextBox)e.Item.FindControl("PriceTextBox")).Text; // With a database, use an update command to update the data. // Because the data source in this example is an in-memory // DataTable, delete the old row and replace it with a new one. // Filter the CartView for the selected item and remove it from // the data source. CartView.RowFilter = "Item='" + item + "'"; if (CartView.Count > 0) { CartView.Delete(0); } CartView.RowFilter = ""; // *************************************************************** // Insert data validation code here. Make sure to validate the // values entered by the user before converting to the appropriate // data types and updating the data source. // *************************************************************** // Add a new entry to replace the previous item. DataRow dr = Cart.NewRow(); dr[0] = qty; dr[1] = item; // If necessary, remove the '$' character from the price before // converting the price to a Double. if(price[0] == '$') { dr[2] = Convert.ToDouble(price.Substring(1)); } else { dr[2] = Convert.ToDouble(price); } Cart.Rows.Add(dr); // Set the EditItemIndex property to -1 to exit editing mode. // Be sure to rebind the DataList to the data source to refresh // the control. ItemsList.EditItemIndex = -1; BindList(); } </script> </head> <body> <form runat=server> <h3>DataList Edit Example</h3> Click <b>Edit</b> to edit the values of the item. <br><br> <asp:DataList id="ItemsList" GridLines="Both" RepeatColumns="3" RepeatDirection="Horizontal" CellPadding="3" CellSpacing="0" runat="server"> <HeaderStyle BackColor="#aaaadd"> </HeaderStyle> <AlternatingItemStyle BackColor="Gainsboro"> </AlternatingItemStyle> <EditItemStyle BackColor="yellow"> </EditItemStyle> <HeaderTemplate> Items </HeaderTemplate> <ItemTemplate> Item: <%# DataBinder.Eval(Container.DataItem, "Item") %> <br> Quantity: <%# DataBinder.Eval(Container.DataItem, "Qty") %> <br> Price: <%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %> <br> <asp:LinkButton id="EditButton" Text="Edit" CommandName="Edit" runat="server"/> </ItemTemplate> <EditItemTemplate> Item: <asp:Label id="ItemLabel" Text='<%# DataBinder.Eval(Container.DataItem, "Item") %>' runat="server"/> <br> Quantity: <asp:TextBox id="QtyTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Qty") %>' runat="server"/> <br> Price: <asp:TextBox id="PriceTextBox" Text='<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>' runat="server"/> <br> <asp:LinkButton id="UpdateButton" Text="Update" CommandName="Update" runat="server"/> <asp:LinkButton id="DeleteButton" Text="Delete" CommandName="Delete" runat="server"/> <asp:LinkButton id="CancelButton" Text="Cancel" CommandName="Cancel" runat="server"/> </EditItemTemplate> </asp:DataList> </form> </body> </html>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からDataList.OnCancelCommand メソッドを検索する場合は、下記のリンクをクリックしてください。

- DataList.OnCancelCommand メソッドのページへのリンク