GridView内按钮Click获取记录主键值

在GridView控件中,每行记录内会放置一个铵钮,当用户点击这个铵钮时,获取当笔记录的主键值。可看演示(是一个gif动画,重新播放尝试刷新网页):GridView内按钮Click获取记录主键值


实现这个功能,你需要为GridView控件设置DataKeyNames属性和OnRowCreated事件。

GridView内按钮Click获取记录主键值 View Code
  < asp:GridView  ID ="GridView1"  runat ="server"  AutoGenerateColumns ="false"  DataKeyNames ="MediaTypeId"
                    OnRowCreated
="GridView1_RowCreated" >
                    
< Columns >
                        
<!--
                            其它 TemplateField
                        
-->
                        
< asp:TemplateField  HeaderText ="Select" >
                            
< ItemTemplate >
                                
< asp:Button  ID ="Button1"  runat ="server"  Text ="选择"   />
                            
</ ItemTemplate >
                        
</ asp:TemplateField >
                    
</ Columns >
                
</ asp:GridView >

 

.aspx.cs代码:

GridView内按钮Click获取记录主键值 View Code
  protected   void  GridView1_RowCreated( object  sender, GridViewRowEventArgs e)
    {
       
if  (e.Row.RowType  !=  DataControlRowType.DataRow)  return ;

        
if  (e.Row.FindControl ( " Button1 " !=   null )
        {
            Button CtlButton 
=  (Button)e.Row.FindControl ( " Button1 " );
            CtlButton.Click 
+= new  EventHandler(CtlButton_Click);
        }
    }

    
private   void  CtlButton_Click( object  sender, EventArgs e)
    {
        Button button 
=  (Button)sender;
        GridViewRow gvr 
=  (GridViewRow)button.Parent.Parent;
        
string  pk  =  GridView1.DataKeys[gvr.RowIndex].Value.ToString();

        
// do something

        
// InsusJsUtility objJs = new InsusJsUtility();   // http://www.cnblogs.com/insus/articles/1341703.html
        
// objJs.JsAlert(pk);
    }

 

 

你可能感兴趣的:(GridView)