继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

这个名字没人起
关注TA
已关注
手记 271
粉丝 19
获赞 92

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


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

5acf073a0001405b00110016.jpgView 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代码:

5acf073a0001405b00110016.jpgView 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);
    }

 

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP