GridView内按钮Click获取记录主键值
在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>
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);
}
{
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);
}