1
我在asp:UpdatePanel
内部有一个asp:GridView
,它有一列asp:LinkButton
控件。LinkButton.Click事件在GridView行数据绑定中动态附加时未触发
在行数据绑定事件上,LinkButton获取它分配的单击事件处理程序。
我已经尽了各种方法试图找出连接点击甚至没有事件发生。
我做错了什么?
ASPX:
<asp:UpdatePanel ID="MainUpdatePanel" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblTest" Text="test" runat="server" />
<asp:GridView ID="gvClientsArchive" runat="server" AllowSorting="true" DataSourceID="dsClients"
OnRowDataBound="gvClientsArchive_RowDataBound" SkinID="gvList"
AllowPaging="true" PageSize="25" Visible="false">
...
后面的代码:
protected void gvClientsArchive_RowDataBound(object sender, GridViewRowEventArgs e)
{
...
int company_id = int.Parse(drvRow["company_id"].ToString());
LinkButton lnkRestore = (LinkButton)e.Row.FindControl("lnkRestore");
lnkRestore.Click += new System.EventHandler(this.doRestore);
按钮处理程序代码:
private void doRestore(object sender, EventArgs e)
{
lblTest.Text = "restore clicked";
}
我也试过:
protected void gvClientsArchive_RowDataBound(object sender, GridViewRowEventArgs e)
{
...
LinkButton lnkRestore = (LinkButton)e.Row.FindControl("lnkRestore");
lnkRestore.Click += delegate
{
lblTest.Text = "restore clicked";
};
我会尽力实施。为什么它不合适? –
@JamesWierzba:已编辑 –
Tim我正在使用'TemplateField'作为此'LinkButton'行的列。我可以看到如何在aspx中添加OnClick,但是如何在click处理程序事件中获取数据行其余部分的上下文? –