C# OnClientClick正在停止回发

C# OnClientClick正在停止回发,c#,javascript,asp.net,.net,C#,Javascript,Asp.net,.net,我有一组ASP.NET控件: <asp:LinkButton ID="Find" ClientIDMode="Static" runat="server" CausesValidation="true" OnClientClick="$('#Find').attr('disabled', 'disabled'); $('#SearchingLabel').show();"> <span>Search</span> <

我有一组ASP.NET控件:

<asp:LinkButton ID="Find"
    ClientIDMode="Static"
    runat="server"
    CausesValidation="true"
    OnClientClick="$('#Find').attr('disabled', 'disabled'); $('#SearchingLabel').show();">
    <span>Search</span>
</asp:LinkButton>
<asp:Label ID="SearchingLabel"
    ClientIDMode="Static"
    runat="server"
    Text="Searching..."
    style="display: none;" />

搜寻
如您所见,我正在使用
OnClientClick
,这样我就可以禁用
Find
按钮并显示
SearchingLabel
而且JavaScript可以正常工作,顺便说一句)。非常基本的东西

此外,围绕
CausesValidation
属性,我在页面上确实有验证控件,但当前没有验证错误

然而,即使我没有从JavaScript返回
false
,页面也没有发回。我甚至尝试
返回true但这并没有改变任何事情(这并不令人惊讶,但值得一试)


我期待您的反馈

在回发之前,您似乎正在禁用按钮

您可以在不禁用页面/脚本的情况下尝试页面/脚本:

OnClientClick="$('#SearchingLabel').show();"
如果有效,请尝试短时间延迟:

OnClientClick="setTimeout(function() { $('#Find').attr('disabled', 'disabled'); }, 100); $('#SearchingLabel').show();"

在加载时尝试此js代码

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest);
function BeginRequest(sender, e) {
    e.get_postBackElement().disabled = true;
    // or your code

}
function EndRequest(sender, e) {
   .......
}

导致验证=“true”
?您的页面上有ValidationControl吗?这些可能会导致it@codingbiz,我确实在页面上有验证控件,但没有验证错误。如果您删除控件或正在使用其发回的控件的父控件,也可能会发生这种情况,例如
OnClientClick=“$(This).remove()”
将导致相同的问题。好的,因此,删除
禁用的
jQuery会起作用并导致它再次回发。但是,
setTimeout
会产生意想不到的副作用,因为不仅按钮从不禁用(例如,如果我在服务器端放置
线程.Sleep
5秒钟),而且即使我在
setTimeout
之前放置该行,
搜索标签也不会显示。我没有看到这一行出现。。。你有没有纠正我在代码中的输入错误?我输入了“函数”而不是“函数”,将编辑我的答案。仅此而已。现在真是魅力四射!