博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2011-07-02 15:32  moss_tan_jun  阅读(322)  评论(0编辑  收藏  举报
实现这个功能,你需要为GridView控件设置DataKeyNames属性和OnRowCreated事件。
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代码:

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);
    }