Onclick事件不是由用户控件中的输入按钮触发的

本文关键字:输入 按钮 控件 事件 用户 Onclick | 更新日期: 2023-09-27 18:11:44

我已经更新了我的。net web应用程序使用框架4.5,更新后,所有的输入按钮(不是asp: buttons),已经停止触发onclick javascript代码,这只发生在那些按钮是在用户控件(.ascx)。

只是为了记录,用户控件既不是动态加载的,也不是在更新面板中加载的。

我的按钮是这样的

<input id="cb" onClick="myfunc()" type="button" value="Close" />

我的用户控件按如下方式包含在页面中

<cc:actionbar id="theActionBar" runat="server"></cc:actionbar>

和javascript函数,它也包含在用户控件中,是

function myfunc() {
    if (confirm("Before closing, please make sure you saved any changes.'nAre you sure you want to close?") == true) {
        __doPostBack('theActionBar:theClose', '');
    }

}

这个在框架3.5和以前的版本上工作得很好。

你知道为什么会这样吗?或者我怎么解决这个问题??我已经试过了我在网上找到的几个建议,但似乎都不起作用。

提前感谢。.

Onclick事件不是由用户控件中的输入按钮触发的

我看不出一个明显的原因,但是您是否考虑过简化您的方法来避免自定义javascript和硬编码的回发事件引用?您可以使用ASP获得完全相同的行为。. NET按钮的OnClientClick属性:

    <asp:Button runat="server" ID="btnClose" Text="Close" OnClick="btnClose_Click" OnClientClick="return confirm('Before closing, please make sure you saved any changes.'nAre you sure you want to close?')" />

从OnClientClick代码或函数返回false会阻止回发。

切换到这种方法可能更可取,甚至可以解决您的问题,如果它与回发事件引用有关。