Vol*_*rix 1 c# asp.net user-interface background-process
我想做的是能够在按下按钮后立即禁用该按钮,执行操作,然后重新启用该按钮。看起来很简单,但我的按钮在我需要时不会更新。我尝试了更新面板,但我不确定我是否正确使用它。难道我做错了什么?或者有更好的方法来实现这一目标吗?
<asp:UpdatePanel runat="server" ID="updateSubmitButton">
<ContentTemplate>
<a href="#resultsSet"><asp:Button ID="btnSearch" CssClass="CrossoverButton" runat="server" Text="Search" OnClick="btnSearch_Click" /></a>
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
protected void btnSearch_Click(object sender, EventArgs e)
{
btnSearch.Enabled = false;
updateContent();
// Do a lengthy operation here.
btnSearch.Enabled = true;
}
Run Code Online (Sandbox Code Playgroud)
您将需要使用客户端技术来禁用该按钮。这是因为当您单击该按钮时,页面会向自身发送回消息,这会告诉服务器执行btnSearch_Click. 根据您的代码,这将
所有这一切都发生在服务器上。只有在该方法执行完成后,才会将上下文返回到页面。
为了禁用单击按钮,您需要尝试以下操作:
<asp:Button ID="btnSearch" CssClass="CrossoverButton" runat="server" Text="Search"
OnClientClick="this.disabled = true;"
UseSubmitBehavior="false" />
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)OnClientClick="this.disabled = true;"
此行注册客户端单击处理程序,以禁用自身。
Run Code Online (Sandbox Code Playgroud)UseSubmitBehavior="false"
此行告诉 ASP.NET 在表单发布中包含禁用的元素,以便服务器知道哪个控件注册了回发。
另请参阅 - /sf/answers/828243741/