Asp.net aspnet不断覆盖我的onclick属性是什么?
我在表格上有一个按钮。在页面加载事件期间,我通过代码隐藏向按钮添加了一个新的onclick属性。但是,当我检查firefox中的按钮时,我的属性不存在,并被替换为: onclick='javascript:WebForm\u-DoPostBackWithOptions(新的WebForm\u-PostBackOptions(“按钮、模态搜索”、“true”、“模态搜索”、“false、false))' 以下是我运行应用程序之前的标签: 下面是我的代码: 按钮\模式\搜索.Attributes.Add(“onclick”,“return showSearchSpinner()”)Asp.net aspnet不断覆盖我的onclick属性是什么?,asp.net,webforms,Asp.net,Webforms,我在表格上有一个按钮。在页面加载事件期间,我通过代码隐藏向按钮添加了一个新的onclick属性。但是,当我检查firefox中的按钮时,我的属性不存在,并被替换为: onclick='javascript:WebForm\u-DoPostBackWithOptions(新的WebForm\u-PostBackOptions(“按钮、模态搜索”、“true”、“模态搜索”、“false、false))' 以下是我运行应用程序之前的标签: 下面是我的代码: 按钮\模式\搜索.Attributes.
有人知道如何防止该属性被覆盖吗?ASP.NET确实覆盖了您的
onclick
属性,但提供了允许您指定自己的客户端行为的属性:
button_modal_search.OnClientClick = "return showSearchSpinner();"
如果该属性的值是常量,您也可以将其指定为按钮标记本身的属性。有一个属性
OnClientClick
:button\u model\u search.OnClientClick=“return showSearchSpinner();”
按钮模式搜索属性添加(“onclick”,“return”
showSearchSpinner()
上面的代码是可以的。若不想回发到服务器,只需从javascript函数返回false
否则,它将在运行showSearchSpinner功能后发回服务器
function showSearchSpinner(){
// do something
return false;
}
注意:您不必担心ASP.Net会取代onclick事件-onclick='javascript:WebForm\ux。。。false,false))”
基本上,showSearchSpinnerjavascript函数会在您单击按钮\u模式\u搜索按钮时拦截ASP.Net单击事件。我创建了一个新的应用程序,只添加了一个按钮,属性没有被覆盖,因此它似乎并不总是被覆盖。还试图弄清楚为什么在我的情况下它会被覆盖。@nate,可能是因为ASP.NET不能依赖按钮的默认提交行为。例如,它可能是一个
LinkButton
,或者它的UseSubmitBehavior
属性被设置为false
。@nate,ASP.NET仍然应该生成自己的onclick
属性,但这应该包括您在OnClientClick
中提供的代码。这项财产一直对我有用(根据谷歌的快速搜索,对其他人也是如此)。问题可能出在代码的其他地方。ASP.NET并不总是将onclick
单独留下,请参见示例。@FrédéricHamidi我从未听说过UseSubmitBehavior
。我今天学到了新东西。谢谢