Repeater事件OnItemCommand取得行内控件

记录一下,主要是这句:
TextBox txtNum = e.Item.FindControl("txtNum") as TextBox;

Repeater真是太强了,太灵活。除了Repeater别的都不用。

Repeater事件OnItemCommand取得行内控件 代码
< table >
    
< asp:Repeater  ID ="rptList"  runat ="server"  OnItemCommand ="rptList_ItemCommand" >
    
< ItemTemplate >
< tr >
    
< td >< asp:TextBox  ID ="txtNum"  runat ="server"  Text ='<%#Eval("ProNum")  % > '> </ asp:TextBox ></ td >
    
< td >< asp:Button  ID ="btnUpdate"  runat ="server"  Text ="更新"  CommandName ="update"  CommandArgument ='<%#Eval("PID")  % > ' /> </ td >
</ tr >
    
</ ItemTemplate >
    
</ asp:Repeater >
</ table >

 

 

Repeater事件OnItemCommand取得行内控件 代码
protected   void  rptList_ItemCommand( object  source, RepeaterCommandEventArgs e)
{
    
switch  (e.CommandName)
    {
        
case   " update " :
            
string  arg  =  e.CommandArgument.ToString(); // 取得参数
            
// 找到激发事件的行内控件,这个很有用,能将更多需要的参数值传递过来。
            TextBox txtNum  =  e.Item.FindControl( " txtNum " as  TextBox;
            
            
// 下面执行业务逻辑
             string  jsStr  =   " <script>alert('删除成功! "   +  txtNum.Text  +   " ')</script> " ;
            Page.ClientScript.RegisterClientScriptBlock(
this .GetType(),  " alert " , jsStr,  false );
            
break ;
    }
    Bind();
}
// 参考MSDN:
// http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.repeater.itemcommand.aspx

 

你可能感兴趣的:(command)