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和以前的版本上工作得很好。
你知道为什么会这样吗?或者我怎么解决这个问题??我已经试过了我在网上找到的几个建议,但似乎都不起作用。提前感谢。.
我看不出一个明显的原因,但是您是否考虑过简化您的方法来避免自定义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
会阻止回发。
切换到这种方法可能更可取,甚至可以解决您的问题,如果它与回发事件引用有关。