使用此代码,我尝试关闭一个窗口(我正在这样做的方式)但我还有一个被忽略的Onclick事件!
<script type="text/javascript">
function GetRadWindow() {
var oWindow = null;
if (window.radWindow) oWindow = window.radWindow;
else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow;
return oWindow;
}
function CloseDialog() {
GetRadWindow().close();
}
ASPX页面:
<asp:Button ID="Button1" runat="server" Text="Soumettre ce ticket"
onclick="Button1_Click" OnClientClick="CloseDialog();return false;"/>
我的应用程序永远不会进入Button1_click事件,任何人都可以帮我找出原因吗? 提前谢谢
编辑:为按钮生成的HTML
<input type="submit" id="Button1" onclick="CloseDialog();" value="Soumettre ce ticket" name="Button1"/>
答案 0 :(得分:15)
This article解释了这个问题。如果要触发服务器事件,则需要在JS中返回true。否则,你必须返回false。
而且,看起来您还必须根据以下内容添加UseSubmitBehavior = false:OnclientClick and OnClick is not working at the same time?
在看到生成的HTML只有CloseDialog()而不是对Button1_Click的调用之后,这一点尤其明显。此更改将连接到您的onclick结束。
<asp:Button ID="Button1" runat="server" Text="Soumettre ce ticket"
onclick="Button1_Click" OnClientClick="CloseDialog();"
UseSubmitBehavior="false"/>
答案 1 :(得分:6)
我遇到了这个问题并使用UseSubmitBehavior="false"
几乎完成了这个伎俩。请务必正确设置OnClientClick
来电:
我的代码使用OnClientClick="return ValidateSearch();"
这是不正确的。它应该只是
<asp:Button ID="keywordSearch" runat="server" Text="Search" TabIndex="1"
OnClick="keywordSearch_Click" OnClientClick="if (!ValidateSearch()) { return false;};" />
请在此处查看Source(并告诉他们!)
如果设置不正确,OnClick
功能将不会触发。
答案 2 :(得分:4)
您正在false
中返回onclientclick
,因此在回发之前会返回该事件。因此,onclick
永远不会触发。
答案 3 :(得分:0)
我刚遇到同样的问题,我认为我们在服务器端enable="false"
和客户端&#34;禁用&#34;之间感到困惑。
使用control.Enabled = "false";
启用控件的serverside属性不与应用Attribute
相同,例如control.Attribute.Add("disabled","disabled");
如果您从服务器端应用Enabled = false;
,即使它已在屏幕上显示,您实际上也会完全关闭控件!继续,尝试并右键单击该控件,然后选择Inspector
或FireFly
进行查看。什么都没有出现。没有任何事情发生,因为控件不存在&#34;。
但是,如果您应用Attribute
属性,则控件对服务器和客户端可见,并且您可以检查它。
我所做的是在ASP.net端设置默认环境,通过说控件(在我的情况下为asp:Button
),有Enabled="true"
(或者没有说什么,因为&#39;无论如何都是默认的。)
在服务器端,在PageLoad()
后,我将按钮设为Visible(在我的情况下,我也将其默认为visible="false"
),并添加适当的Attribute
值。
btnSEND.Visible = true;
btnSEND.Attributes.Add("disabled", "disabled");
这样按钮没有启用,但它不完全&#34;隐形&#34;对于客户端,并通过在我的程序的另一个区域中使用JavaScript,我控制何时启用它。
此方法还避免了必须使用UseSubmitBehavior="false"
。
答案 4 :(得分:0)
在page_load中,使用Add.Atribute方法传递java脚本函数,返回true。首先它将加载javascript函数。然后它将加载按钮点击事件