zoukankan      html  css  js  c++  java
  • 关于repeater内控件的事件绑定,内部模板列

    比较常规的方法是   使用Repeat(DataGrid,DataList,GridView均一样)   的   ItemCommand   事件,如 

    //   .aspx 
      <asp:Repeater   ID= "Repeater1 "   runat= "server "   OnItemCommand= "Repeater1_ItemCommand "> 
                            
    <ItemTemplate> 
                                    
    <asp:Button   ID= "btn "   CommandName= "SayHello "   runat= "server "   Text= "SayHello "   /> 
                            
    </ItemTemplate> 
    </asp:Repeater> 

    //   .aspx.cs 
            protected   void   Repeater1_ItemCommand(object   source,   RepeaterCommandEventArgs   e) 
            { 
                    
    switch   (e.CommandName)   { 
                            
    case   "SayHello "
                                    Response.Write(e.Item.ItemIndex); 
                                    Response.Write(e.CommandArgument);   
    //   自定义的参数信息 
                                    break;                         
                    } 
            } 

    3
    直接设置   button   的   click   事件,   当然处理程序需要一点技巧才能获取其他信息,   如: 

    //   .aspx 
      <asp:Repeater   ID= "Repeater2 "   runat= "server "   OnItemCommand= "Repeater1_ItemCommand "> 
                            
    <ItemTemplate> 
                                    
    <asp:Button   ID= "btn "   runat= "server "   CommandArgument= ' <%#   Eval( "SomeFieldName ")   %> '   Text= "SayHello "   OnClick= "btnInRepeat2_Click "   /> 
                                    
    <input   id= "btn2 "   runat= "server "   runat= "server "   value= "SayHello "   onclick= "btn2InRepeat2_Click "   /> 
                            
    </ItemTemplate> 
                    
    </asp:Repeater> 

    //   .aspx.cs 
      protected   void   btnInRepeat2_Click(object   sender,   EventArgs   e) 
            { 
                    
    //   触发事件的   Button 
                    Button   btn   =   sender   as   Button; 
                    
    //   Button   所在行 
                    RepeaterItem   item   =   btn.NamingContainer   as   RepeaterItem;                 
            } 

            
    protected   void   btn2InRepeat2_Click(object   sender,   EventArgs   e) 
            { 
                    
    //   触发事件的   Button 
                    HtmlButton   btn   =   sender   as   HtmlButton; 
                    
    //   Button   所在行 
                    RepeaterItem   item   =   btn.NamingContainer   as   RepeaterItem; 
            } 


    4.   
    对于   button   ,建议使用   WebControl   的   Button   而不是使用   runat
    =serer   的   input, 
    你看到了   button   具有   CommandName   和   CommandArguments   可以使用 


    Hope   helpful
    !



    1.   不推荐使用Html   Web   Controls
    2.   如果在Repeater中ItemTemplate中放的按钮,一般使用ItemCommand事件处理即可,无需自己再注册事件
  • 相关阅读:
    Postgresql10离线安装
    Clickhouse集群安装部署
    Clickhouse建表语法、视图语法、数据表DDL(数据定义语言)、数据DML(数据操作语言)
    Clickhouse基础语法、数据类型、数据表引擎学习
    Spring4.0+Mybatis整合时占位符无法读取jdbc.properties的问题
    Code: 210. DB::NetException: Connection refused (localhost:9000)
    使用Jdbc的方式连接Clickhouse列式数据库
    Dbeaver连接不上远程服务器部署的Clickhouse问题
    Clickhouse入门学习、单机、集群安装部署
    Another Redis DeskTop Manage一款免费的Redis可视化工具
  • 原文地址:https://www.cnblogs.com/goody9807/p/1131189.html
Copyright © 2011-2022 走看看