DataList.ItemCommand 事件

DataList.ItemCommand 事件

当单击 DataList 控件中的任一按钮时发生。

命名空间:System.Web.UI.WebControls
程序集:System.Web(在 system.web.dll 中)

public event DataListCommandEventHandler ItemCommand
/** @event */
public void add_ItemCommand (DataListCommandEventHandler value)

/** @event */
public void remove_ItemCommand (DataListCommandEventHandler value)

ItemCommand 事件在单击 DataList 控件中的任一按钮时引发,并且在具有带自定义 CommandName 值的按钮控件时通常使用它。

有关处理事件的更多信息,请参见 如何:在 Web 窗体应用程序中使用事件

下面的代码示例演示如何为 ItemCommand 事件指定和编写处理程序,以便从 DataList 控件中选择项。

Note注意

以下代码示例使用单文件代码模型,当它直接复制到代码隐藏文件时可能不能正常工作。此代码示例必须被复制到具有 .aspx 扩展名的空文本文件中。有关 Web 窗体代码模型的更多信息,请参见 ASP.NET 网页代码模型

<%@ Page Language= "C#" AutoEventWireup= "True" %>
<%@ Import Namespace= "System.Data" %>

<html>
<head>

   <script runat= "server">

      ICollection CreateDataSource()
      {
     
         // Create sample data for the DataList control.
         DataTable dt = new DataTable();
         DataRow dr;

         // Define the columns of the table.
         dt.Columns.Add( new DataColumn( "Item", typeof(Int32)));
         dt.Columns.Add( new DataColumn( "Qty", typeof(Int32)));
         dt.Columns.Add( new DataColumn( "Price", typeof( double)));

         // Populate the table with sample values.
         for ( int i = 0; i < 9; i++)
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = i * 2;
            dr[2] = 1.23 * (i + 1);

            dt.Rows.Add(dr);
         }

         DataView dv = new DataView(dt);
         return dv;

      }

      void Page_Load(Object sender, EventArgs e)
      {

         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack)
         {
            ItemsList.DataSource = CreateDataSource();
            ItemsList.DataBind();
         }

      }

      void Item_Command(Object sender, DataListCommandEventArgs e)
      {
       
         // Set the SelectedIndex property to select an item in the DataList.
         ItemsList.SelectedIndex = e.Item.ItemIndex;

         // Rebind the data source to the DataList to refresh the control.
         ItemsList.DataSource = CreateDataSource();
         ItemsList.DataBind();

      }

   </script>

</head>
<body>

   <form runat= "server">

      <h3>DataList Select Example</h3>

      Click <b>Select</b> to select an item.

      <br><br>
      
      <asp:DataList id= "ItemsList"
           GridLines= "Both"
           CellPadding= "3"
           CellSpacing= "0"          
           OnItemCommand= "Item_Command"
           runat= "server">

         <HeaderStyle BackColor= "#aaaadd">
         </HeaderStyle>

         <AlternatingItemStyle BackColor= "Gainsboro">
         </AlternatingItemStyle>

         <SelectedItemStyle BackColor= "Yellow">
         </SelectedItemStyle>

         <HeaderTemplate>

            Items

         </HeaderTemplate>
        
         <ItemTemplate>

            <asp:LinkButton id= "SelectButton"
                 Text= "Select"
                 CommandName= "Select"
                 runat= "server"/>

            Item <%# DataBinder.Eval(Container.DataItem, "Item") %>

         </ItemTemplate>
             
         <SelectedItemTemplate>

            Item:
            <asp:Label id= "ItemLabel"
                 Text= '<%# DataBinder.Eval(Container.DataItem, "Item") %>'
                 runat= "server"/>

            <br>

            Quantity:
            <asp:Label id= "QtyLabel"
                 Text= '<%# DataBinder.Eval(Container.DataItem, "Qty") %>'
                 runat= "server"/>

            <br>

            Price:
            <asp:Label id= "PriceLabel"
                 Text= '<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>'
                 runat= "server"/>

         </SelectedItemTemplate>

      </asp:DataList>

   </form>

</body>
</html>


<%@ Page Language= "C#" AutoEventWireup= "True" %>
<%@ Import Namespace= "System.Data" %>

<html>
<head>

   <script runat= "server">

      ICollection CreateDataSource()
      {
     
         // Create sample data for the DataList control.
         DataTable dt = new DataTable();
         DataRow dr;

         // Define the columns of the table.
         dt.Columns.Add( new DataColumn( "Item", typeof(Int32)));
         dt.Columns.Add( new DataColumn( "Qty", typeof(Int32)));
         dt.Columns.Add( new DataColumn( "Price", typeof( double)));

         // Populate the table with sample values.
         for ( int i = 0; i < 9; i++)
         {
            dr = dt.NewRow();

            dr[0] = i;
            dr[1] = i * 2;
            dr[2] = 1.23 * (i + 1);

            dt.Rows.Add(dr);
         }

         DataView dv = new DataView(dt);
         return dv;

      }

      void Page_Load(Object sender, EventArgs e)
      {

         // Load sample data only once, when the page is first loaded.
         if (!IsPostBack)
         {
            ItemsList.DataSource = CreateDataSource();
            ItemsList.DataBind();
         }

         // Manually register the event-handling method for the
         // ItemCommand event.
         ItemsList.ItemCommand +=
             new DataListCommandEventHandler( this.Item_Command);

      }

      void Item_Command(Object sender, DataListCommandEventArgs e)
      {
       
         // Set the SelectedIndex property to select an item in the DataList.
         ItemsList.SelectedIndex = e.Item.ItemIndex;

         // Rebind the data source to the DataList to refresh the control.
         ItemsList.DataSource = CreateDataSource();
         ItemsList.DataBind();

      }

   </script>

</head>
<body>

   <form runat= "server">

      <h3>DataList Select Example</h3>

      Click <b>Select</b> to select an item.

      <br><br>
      
      <asp:DataList id= "ItemsList"
           GridLines= "Both"
           CellPadding= "3"
           CellSpacing= "0"          
           runat= "server">

         <HeaderStyle BackColor= "#aaaadd">
         </HeaderStyle>

         <AlternatingItemStyle BackColor= "Gainsboro">
         </AlternatingItemStyle>

         <SelectedItemStyle BackColor= "Yellow">
         </SelectedItemStyle>

         <HeaderTemplate>

            Items

         </HeaderTemplate>
        
         <ItemTemplate>

            <asp:LinkButton id= "SelectButton"
                 Text= "Select"
                 CommandName= "Select"
                 runat= "server"/>

            Item <%# DataBinder.Eval(Container.DataItem, "Item") %>

         </ItemTemplate>
             
         <SelectedItemTemplate>

            Item:
            <asp:Label id= "ItemLabel"
                 Text= '<%# DataBinder.Eval(Container.DataItem, "Item") %>'
                 runat= "server"/>

            <br>

            Quantity:
            <asp:Label id= "QtyLabel"
                 Text= '<%# DataBinder.Eval(Container.DataItem, "Qty") %>'
                 runat= "server"/>

            <br>

            Price:
            <asp:Label id= "PriceLabel"
                 Text= '<%# DataBinder.Eval(Container.DataItem, "Price", "{0:c}") %>'
                 runat= "server"/>

         </SelectedItemTemplate>

      </asp:DataList>

   </form>

</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值