动态附加在GridView行数据绑定中时,不会触发LinkButton.Click事件

詹姆斯·威洛(James Willow)

我在的asp:GridView内部asp:UpdatePanel,其中有一列asp:LinkButton控件。

在行数据绑定事件上,LinkBut​​ton为其分配了单击事件处理程序。

我已经尝试了各种可能的方法来连连点击,但没有任何事件触发过。

难道我做错了什么?

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";
    };
蒂姆·施密特(Tim Schmelter)

RowDataBound如果要注册事件处理程序,则不合适。用途RowCreated

protected void gvClientsArchive_RowCreated(object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType ==  DataControlRowType.DataRow)
    {
        LinkButton lnkRestore = (LinkButton)e.Row.FindControl("lnkRestore");
        lnkRestore.Click += new System.EventHandler(this.doRestore);
    }
}

RowDataBound仅当您不需要在每个回发上对网格进行数据绑定时才会触发,因为所有控件都在页面生命周期的末尾处理,因此不需要每次回发。还为时已晚。

如果使用TemplateFields,则更容易在aspx上声明式注册处理程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

动态附加在GridView行数据绑定中时,不会触发LinkButton.Click事件

来自分类Dev

动态ModalPopupExtender不会触发OK Click事件

来自分类Dev

click事件多次触发

来自分类Dev

事件 .click 多次触发

来自分类Dev

jQuery Click事件不会触发

来自分类Dev

动态添加Click事件

来自分类Dev

动态添加HTML时不会触发Click事件

来自分类Dev

动态添加的敲除数据绑定属性不会触发click事件处理程序

来自分类Dev

FlowLayoutPanel中的Click事件

来自分类Dev

jQuery中不会触发Click事件

来自分类Dev

在JQuery中绑定动态元素的click事件

来自分类Dev

jQuery on(click)/click 事件未触发

来自分类Dev

动态创建时,click()方法不会触发锚点上的click事件

来自分类Dev

忽略jquery中的click事件的模糊事件

来自分类Dev

CKEditor的click事件未触发

来自分类Dev

jQuery click事件未触发

来自分类Dev

jQuery的Click事件不触发

来自分类Dev

jQuery Click事件未触发

来自分类Dev

如何多次触发“ .click”事件?

来自分类Dev

BackboneJS click事件未触发

来自分类Dev

CKEditor的click事件未触发

来自分类Dev

jQuery Click事件未触发

来自分类Dev

jQuery'click'事件未触发

来自分类Dev

用click()事件触发FancyBox

来自分类Dev

jQuery click事件也会触发提交表单按钮click事件

来自分类Dev

jQuery附加并使用on绑定click事件

来自分类Dev

jQuery click事件不会解除绑定

来自分类Dev

.click事件中的.click事件无法正常工作

来自分类Dev

从Mail动态创建的ahref触发click事件