gpt4 book ai didi

asp.net - 单击按钮后更新 ASP.NET 标签,使用 UpdatePanel

转载 作者:行者123 更新时间:2023-12-04 15:26:33 27 4
gpt4 key购买 nike

当我单击 ASP.NET 页面中的按钮时,我试图让两件事发生:

  • 更改 ASP:Label 中的文本。
  • 禁用按钮。

  • 我在这方面做了很多研究,但我在做任何事情时都遇到了困难。

    对于#1,我认为这应该有效,但它没有:
    <%@ Page Language="VB" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">


    Protected Sub BtnSubmit_Click(sender As Object, e As System.EventArgs)
    Label1.Text = "Working..."

    System.Threading.Thread.Sleep(5000)

    Label1.Text = "Done."

    End Sub
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title>Test Page</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <ajaxToolkit:ToolkitScriptManager runat="server" />
    <div>
    <asp:ListBox runat="server" Height="100px" />
    <br />
    <asp:UpdatePanel runat="server">
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="BtnSubmit" EventName="Click" />
    </Triggers>
    <ContentTemplate>
    <asp:Label ID="Label1" runat="server" Text="Press the button" />
    </ContentTemplate>
    </asp:UpdatePanel>
    <br />
    <asp:Button runat="server" ID="BtnSubmit" OnClick="BtnSubmit_Click" Text="Submit Me!" />
    </div>
    </form>
    </body>
    </html>

    永远不会显示“正在工作...”消息。

    至于#2,我把它加到了按钮上(我忘了在哪里找到的):
    OnClientClick="this.disabled = true; this.value = 'Working...';"
    UseSubmitBehavior="false"

    这具有禁用按钮并更改其文本(值)的预期效果,但无法使用 Text 和 Enabled 属性将其更改回来。

    最佳答案

    我刚刚在 msdn ( http://msdn.microsoft.com/en-us/library/bb386518.aspx) ) 上找到了一个解决方案。添加了一些代码并删除了一些不必要的部分。

    <%@ Page Language="C#"  %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">
    protected void btnDoWork_Click(object sender, EventArgs e)
    {
    /// do something long lasting
    System.Threading.Thread.Sleep(3000);
    }
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
    <title></title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <asp:ScriptManager ID="ScriptManager1" runat="server" />

    <script language="javascript" type="text/javascript">
    <!--
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);
    prm.add_endRequest(EndRequest);
    var postBackElement;
    function InitializeRequest(sender, args) {
    if (prm.get_isInAsyncPostBack()) {
    args.set_cancel(true);
    }
    postBackElement = args.get_postBackElement();
    if (postBackElement.id == 'btnDoWork') {
    $get('btnDoWork').value = 'Working ...';
    $get('btnDoWork').disabled = true;
    }
    }
    function EndRequest(sender, args) {
    if (postBackElement.id == 'btnDoWork') {
    $get('btnDoWork').value = 'Done!';
    $get('btnDoWork').disabled = false;
    }
    }
    // -->
    </script>

    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <asp:Label ID="Label1" runat="server" Text="Hello World!"></asp:Label><br />
    </ContentTemplate>
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnDoWork" />
    </Triggers>
    </asp:UpdatePanel>
    <asp:Button ID="btnDoWork" runat="server" Text="Start!" OnClick="btnDoWork_Click" />
    </div>
    </form>
    </body>
    </html>

    你基本上做的是为 注册一些 eventHandler初始化_ End_Request - 在那些您禁用和启用按钮的情况下!

    HTH

    关于asp.net - 单击按钮后更新 ASP.NET 标签,使用 UpdatePanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6429791/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com