任务完成后更新ASP.NET标签

本文关键字:ASP NET 标签 更新 任务 | 更新日期: 2023-09-27 18:29:43

好的,所以我已经做了一些搜索,但似乎找不到我想要的东西。我对ASP.NET还很陌生,但对C#还不熟悉。我必须创建一个页面来处理常规的网络服务请求,以便用基于网络的会计软件服务的数据更新网络商店。我遇到的问题是,我需要先加载页面,然后运行更新,否则页面超时,更新失败。显示页面只有几个标签,这就是我所需要的,因为页面会每隔一段时间刷新一次并运行更新。然而,我需要更新方法,以便能够将结果显示在屏幕上。我运行更新没有问题,只是确保显示结果。我没有按下任何按钮,也没有使用任何表格。

这是我的页面代码:

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="MainContent">
<div class="pageHeader">
    <div class="caption">
        <h1><asp:Localize ID="Caption" runat="server" Text="Update of Order Status From NetSuite Into AbleCommerce"></asp:Localize></h1>
    </div>
</div>
<div>
        <asp:Label ID="Label0" runat="server"></asp:Label>
        <br /><br />
        <asp:Label ID="Label1" runat="server"></asp:Label>
        <br /><br />
        <asp:Label ID="Label2" runat="server"></asp:Label>
        <br /><br />
        <asp:Label ID="Label3" runat="server"></asp:Label>
</div>
</asp:Content>



这是我的后台代码:

public partial class Template_Default : CommerceBuilder.Web.UI.AbleCommercePage
{
    private void PerformUpdate(object State)
    {
        Store _Store = StoreDataSource.Load(1);
        Token.Instance.InitStoreContext(_Store);
        String results = PontoonUpdate.soUpdate(); // method that performs the updates
        Label3.Text = "Update Completed. " + String.Format("{0:MM-dd-yyyy hh:mm:ss}", DateTime.Now + "'n'n" + results);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Label0.Text = "Update start time: " + String.Format("{0:MM-dd-yyyy hh:mm:ss}", DateTime.Now);
        Label1.Text = "Order updates will begin.";
        Label2.Text = "Processing...";
        if(!Page.IsPostBack)
            System.Threading.ThreadPool.QueueUserWorkItem(PerformUpdate);
    }
}

我知道我错过了一些东西,我知道这是因为我缺乏使用ASP.NET的经验。如果有人有任何建议,我将不胜感激。


好吧,我找到了我想做的事情的答案。我在寻找其他东西,发现了这个。。。

http://www.simple-talk.com/dotnet/asp.net/implementing-waiting-pages-in-asp.net/

任务完成后更新ASP.NET标签

将控件包装在UpdatePanel中。这是穷人的AJAX。将控件(或整个页面)放入内容模板中。然后在触发器部分,告诉它要监视哪些控件,以及要捕捉哪些事件。它会完成剩下的工作。在你的情况下,从这里开始,你只需要触发某种事件。它可以是在Load上触发按钮的javascript,甚至可以是其他控件的绑定事件。这其实并不重要。

<asp:UpdatePanel runat="server" ID="update">
    <ContentTemplate>
        <div class="pageHeader">
            <div class="caption">
                <h1><asp:Localize ID="Caption" runat="server" Text="Update of Order Status From NetSuite Into AbleCommerce"></asp:Localize></h1>
            </div>
        </div>
        <div>
                <asp:Label ID="Label0" runat="server"></asp:Label>
                <br /><br />
                <asp:Label ID="Label1" runat="server"></asp:Label>
                <br /><br />
                <asp:Label ID="Label2" runat="server"></asp:Label>
                <br /><br />
                <asp:Label ID="Label3" runat="server"></asp:Label>
        </div>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="generate" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>