我有一个类似以下的按钮,
<asp:Button ID="pagerLeftButton" runat="server" OnClientClick="disable(this)" onclick="pager_Left_Click" Text="<" />
当我这样使用按钮时,onclick不会触发。当我删除OnClientClick时,就会触发onclick。
我需要做的是,在回发期间禁用该按钮,并在回发结束后启用它。
编辑:附加信息:
我在我的触发函数中添加了断点,这是c#部分,我正在调试,但不能确定它们是否触发。这些功能就像
protected void pager_Left_Click(object sender, EventArgs e) { //Do smthing. } protected void pager_Right_Click(object sender, EventArgs e) { //Do smthing. }
当我单击我的按钮时,它会被禁用1-2秒并自动启用,但是我不确定为什么启用了它。我没有添加任何部分以使其再次启用。
来自web.archive.org上的这篇文章:
诀窍是使用按钮控件的OnClientClick和UseSubmitBehavior属性。还有其他方法,包括在服务器端添加属性的代码,但是我认为以这种方式进行的简单性更具吸引力: <asp:Button runat="server" ID="BtnSubmit" OnClientClick="this.disabled = true; this.value = ‘Submitting…’;” UseSubmitBehavior=”false” OnClick=”BtnSubmit_Click” Text=”Submit Me!” /> OnClientClick允许您添加客户端OnClick脚本。在这种情况下,JavaScript将禁用button元素并将其文本值更改为进度消息。回发完成后,新呈现的页面将把按钮还原回其初始状态,而无需进行任何其他工作。 禁用客户端上的提交按钮的一个陷阱是它将取消浏览器的提交,并因此取消回发。将UseSubmitBehavior属性设置为false可以指示.NET注入必要的客户端脚本以无论如何触发回发,而不是依赖于浏览器的表单提交行为。在这种情况下,它注入的代码将是: __doPostBack('BtnSubmit','') 这被添加到我们的OnClientClick代码的末尾,为我们提供了呈现的HTML: <input type="button" name="BtnSubmit" onclick="this.disabled = true; this.value =’Submitting…’;__doPostBack(‘BtnSubmit’,’‘)” value=”Submit Me!” id=”BtnSubmit” /> 在回发完成时,这将提供不错的按钮禁用效果并处理文本。
诀窍是使用按钮控件的OnClientClick和UseSubmitBehavior属性。还有其他方法,包括在服务器端添加属性的代码,但是我认为以这种方式进行的简单性更具吸引力:
<asp:Button runat="server" ID="BtnSubmit" OnClientClick="this.disabled
= true; this.value = ‘Submitting…’;” UseSubmitBehavior=”false” OnClick=”BtnSubmit_Click” Text=”Submit Me!” />
OnClientClick允许您添加客户端OnClick脚本。在这种情况下,JavaScript将禁用button元素并将其文本值更改为进度消息。回发完成后,新呈现的页面将把按钮还原回其初始状态,而无需进行任何其他工作。
禁用客户端上的提交按钮的一个陷阱是它将取消浏览器的提交,并因此取消回发。将UseSubmitBehavior属性设置为false可以指示.NET注入必要的客户端脚本以无论如何触发回发,而不是依赖于浏览器的表单提交行为。在这种情况下,它注入的代码将是:
__doPostBack('BtnSubmit','')
这被添加到我们的OnClientClick代码的末尾,为我们提供了呈现的HTML:
<input type="button" name="BtnSubmit" onclick="this.disabled = true;
this.value =’Submitting…’;__doPostBack(‘BtnSubmit’,’‘)” value=”Submit Me!” id=”BtnSubmit” />
在回发完成时,这将提供不错的按钮禁用效果并处理文本。