单击按钮后更改按钮上的文本和启用状态(asp.net)

时间:2017-09-13 08:17:42

标签: asp.net

我使用ASP.NET进行开发。 在这里,我想要的是,一旦我点击按钮A(按钮A上的文字是"开始"),按钮A上的文字将变为"处理...请等待"和按钮A将无法点击。然后执行存储过程(存储过程的持续时间为1分钟)。存储过程完成后,按钮A上的文本将变为"开始"和按钮A将变为可点击。

我在存储过程之前尝试过,我添加了这些代码:

ButtonA.Text = "processing...please wait";
ButtonA.Enabled = false;

在存储过程之后,我添加了以下代码:

ButtonA.Text = "Start";
ButtonA.Enabled = true;

但结果是按钮A上的文本未更改,并且在存储过程执行期间按钮A仍可单击。 有谁能告诉我如何实现我想要的?感谢。

然后我将我的aspx文件编辑为:

<asp:ScriptManager ID="MainScriptManager" runat="server"/>
    <asp:UpdatePanel ID="pnlHelloWorld" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
        <ContentTemplate>
    <asp:Button ID="ButtonA" runat="server" OnClick="ButtonA_Click" Text="Start" />
         </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="ButtonA" EventName="Click"/> 
    </Triggers>
    </asp:UpdatePanel>

但按钮的文字仍保持不变,按钮仍可点击。

1 个答案:

答案 0 :(得分:0)

您可以使用Ajax来实现您的要求。使用Ajax,您可以进行部分页面刷新。 将ButtonA放在UpdatePanel内,它应该按预期工作。

您可以参考以下示例代码以供参考。

webpage.aspx代码

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Hello, world!</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="MainScriptManager" runat="server" />
        <asp:UpdatePanel ID="pnlHelloWorld" runat="server">
            <ContentTemplate>

                <asp:Button runat="server" ID="ButtonA" OnClick="btnHelloWorld_Click" Text="Update label!" />
            </ContentTemplate>
        </asp:UpdatePanel>
    </form>
</body>
</html>


c#c​​ode

protected void btnHelloWorld_Click(object sender, EventArgs e)
    {
        //Before Procedure call
        ButtonA.Text = "processing...please wait";
        ButtonA.Enabled = false;

        //Call Procedure
        procedure ....
       //After Prodedure call
       ButtonA.Text = "Start";
       ButtonA.Enabled = true;
    }


希望有所帮助,谢谢。