【问题标题】:ASP/C# - UpdatePanel and Button OnClick Event Not TriggeredASP/C# - UpdatePanel 和按钮 OnClick 事件未触发
【发布时间】:2015-03-19 19:54:17
【问题描述】:

我一直在努力寻找解决方案,但如果有人可以看一下,那就太好了。

在我的 aspx 页面和 C# 代码隐藏中,我有以下内容:

aspx:

<asp:UpdatePanel runat="server" ID="UpdatePanel8" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnAddTableRow" EventName="Click" />
    </Triggers>
    <ContentTemplate>
        <div id="divDynamicFields" runat="server"></div>
    </ContentTemplate>
</asp:UpdatePanel>

<div hidden>
    <asp:Button ID="btnAddTableRow" runat="server" OnClick="AddTableRow" />
</div>

<script type="text/javascript">
    function addTableRow(tableId) {
        $('#<%=btnAddTableRow.ClientID%>').click();
    }
</script>

C#:

protected void AddTableRow(object sender, EventArgs e)
{
    (...)
}

如果我不使用UpdatePanel会触发该事件,但是当使用UpdatePanel执行时,有PostBack但没有调用C#方法。我试图理解它一段时间但无济于事。有任何想法吗?谢谢。

【问题讨论】:

  • 在你的 里面你试过添加&lt;asp:PostBackTrigger ControlID="btnAddTableRow" /&gt;
  • 感谢您的评论,但我已经找到并发布了解决方案。 :)

标签: javascript c# asp.net updatepanel


【解决方案1】:

在睡了一夜好觉和头脑清醒之后,我终于发现了失败的原因。 JS 函数 addTableRow(tableId) 实际上由在 Page_Load 中动态创建的按钮调用(这些按钮的数量不固定,因此将它们与此 JS 函数相关联,该 JS 函数单击从代码隐藏触发事件方法的隐藏按钮)。问题是,我是通过以下方式生成这些按钮的:

Button addRowButton = new Button();
addRowButton.Text = "This is my dynamically generated button";
addRowButton.Attributes.Add("onclick", "addTableRow('" + idControl + "')");

但是当我改为:

HtmlGenericControl addRowButton = new HtmlGenericControl("input");
addRowButton.Attributes.Add("type", "button");
addRowButton.Attributes.Add("onclick", "addTableRow('" + idControl + "');");
addRowButton.Attributes.Add("value", "This is my dynamically generated button");

其实有点奇怪,因为使用 Button() 创建的按钮仍然调用了 JS 函数 addTableRows 并导致 PostBack,但没有调用 code behind 方法。也许它与页面生命周期和为动态按钮生成的 ID 有关,这些按钮以不同的方式生成,具体取决于将它们创建为 Button 或 HtmlGenericControl,但无论如何它现在都在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多