OnClientClick正在停止回发

时间:2013-01-07 12:23:48

标签: 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:LinkButton>
<asp:Label ID="SearchingLabel"
    ClientIDMode="Static"
    runat="server"
    Text="Searching..."
    style="display: none;" />

正如您所见,我正在使用OnClientClick,因此我可以停用Find按钮并显示SearchingLabel并且JavaScript无错误地运行BTW < /强>)。非常基本的东西。

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

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

我期待您的反馈!

2 个答案:

答案 0 :(得分:8)

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

您可以在没有禁用部分的情况下尝试您的页面/脚本:

OnClientClick="$('#SearchingLabel').show();"

如果这样可行,请稍等延迟尝试:

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

答案 1 :(得分:0)

试试这个js代码onload

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) {
   .......
}