DataList.EditCommand イベントとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > DataList.EditCommand イベントの意味・解説 

DataList.EditCommand イベント

DataList コントロールの項目に対して Edit ボタンクリックされたときに発生します

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Event EditCommand As
 DataListCommandEventHandler
Dim instance As DataList
Dim handler As DataListCommandEventHandler

AddHandler instance.EditCommand, handler
public event DataListCommandEventHandler EditCommand
public:
event DataListCommandEventHandler^ EditCommand {
    void add (DataListCommandEventHandler^ value);
    void remove (DataListCommandEventHandler^ value);
}
/** @event */
public void add_EditCommand (DataListCommandEventHandler
 value)

/** @event */
public void remove_EditCommand (DataListCommandEventHandler
 value)
JScript では、イベント使用できますが、新規に宣言することはできません。
解説解説

EditCommand イベントは、DataList コントロールの項目に対して Edit ボタンクリックされたときに発生します

EditCommand イベント典型的なハンドラは EditItemIndex プロパティ選択した行に設定しデータDataList コントロール再連結ます。

注意に関するメモ注意

テキストは、DataList コントロール表示される前にHTML エンコードされません。これによって、テキストHTML タグ内のスクリプト埋め込むことができますコントロールの値がユーザー入力による値の場合は、セキュリティ上の危険性低減するために、必ず値を検証するようにしてください

イベント処理詳細については、「方法 : Web フォーム アプリケーションイベント利用する」を参照してください

注意に関するメモ注意

このコントロールは、ユーザー入力表示するために使用できますユーザー入力には悪意のあるクライアント スクリプト含まれている可能性ありますアプリケーション表示する前にクライアントから送信され実行スクリプトSQL ステートメントなどのコード情報はすべて検証してください入力テキストコントロール表示する前に検証コントロール使用してユーザー入力検証できますASP.NET には入力要求検証機能があり、ユーザー入力の中のスクリプトおよび HTMLブロックできます詳細については、「標準コントロールセキュリティ保護」、「方法 : HTML エンコーディング文字列適用して Web アプリケーションスクリプトによる攻略から保護する」、および「ASP.NET Web ページにおけるユーザー入力検証」を参照してください

使用例使用例

EditCommand イベントハンドラ指定およびコーディングする方法次のコード例示します。この例では、Edit ボタンクリックする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>

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DataList クラス
DataList メンバ
System.Web.UI.WebControls 名前空間
DataListCommandEventHandler
OnEditCommand
DataList.CancelCommand イベント
DataList.DeleteCommand イベント
UpdateCommand
その他の技術情報
DataList Web サーバー コントロール
ASP.NET Web ページコード モデル


このページでは「.NET Framework クラス ライブラリ リファレンス」からDataList.EditCommand イベントを検索した結果を表示しています。
Weblioに収録されているすべての辞書からDataList.EditCommand イベントを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDataList.EditCommand イベント を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DataList.EditCommand イベント」の関連用語

DataList.EditCommand イベントのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataList.EditCommand イベントのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS