在GridView控件中,每行记录内会放置一个铵钮,当用户点击这个铵钮时,获取当笔记录的主键值。可看演示(是一个gif动画,重新播放尝试刷新网页):
实现这个功能,你需要为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); }