更新面板中中继器中的 LinkBut​​ton onclick 事件

LinkButton onclick event in repeater in updatepanel

我可以在中继器中使用 Click 事件,中继器位于更新面板中。我正在使用 div 作为试图点击 LinkBut​​ton 的触发器。

protected void rpt_product_ItemCreated(object sender, RepeaterItemEventArgs e)
{
    HtmlGenericControl div_product = (HtmlGenericControl)e.Item.FindControl("div_product");
    LinkButton lnk_product = (LinkButton)e.Item.FindControl("lnk_product");
    lnk_product.ClientIDMode = ClientIDMode.Static;
    lnk_product.ID = "lnk_product_" + (e.Item.ItemIndex + 1);
    div_product.Attributes.Add("onclick", "document.getElementById('" + lnk_product.ClientID + "').click()");
}

在浏览器中出现错误:

Image (async)
_updatePanel @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
_scriptIncludesLoadComplete @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
(anonymous) @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
(anonymous) @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
_loadScriptsInternal @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
_nextSession @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
loadScripts @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
_onFormSubmitCompleted @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
(anonymous) @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
(anonymous) @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
completed @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
_onReadyStateChange @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
XMLHttpRequest.send (async)
executeRequest @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
executeRequest @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
invoke @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
_onFormSubmit @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
_doPostBack @ ScriptResource.axd?d…YI5aZ0&t=3d6efc1f:5
(anonymous) @ ScriptResource.axd?d…qOX341&t=3d6efc1f:5
(anonymous) @ VM7570:1

你有什么想法吗?我怎样才能毫无问题地使用 javascript click 事件。如果用户点击 div,我想点击 link 按钮。

更新面板 > 转发器 > Div > LinkBut​​ton

我重新创建了 Repeater(我想,如果你下次也发布它会很有帮助)。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>

        <asp:Repeater ID="rpt_product" runat="server" OnItemCreated="rpt_product_ItemCreated">
            <ItemTemplate>
                <div id="div_product" runat="server">
                    <asp:LinkButton ID="lnk_product" runat="server" OnClick="lnk_product_Click">LinkButton</asp:LinkButton>
                     Div Contents
                </div>
            </ItemTemplate>
        </asp:Repeater>

    </ContentTemplate>
</asp:UpdatePanel>

问题可能是您正在更改 LinkBut​​ton 的 ID。所以删除 lnk_product.ID = "lnk_product_" + (e.Item.ItemIndex + 1);。你不需要改变它。然后就可以了