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

时间:2012-04-02 21:13:38

标签: c# asp.net

好的,所以我做了一些搜索,但我似乎无法找到我正在寻找的东西。我是ASP.NET的新手,但不是C#。我必须创建一个页面来处理常规Web服务请求,以便使用基于Web的会计软件服务中的数据更新Web存储。我遇到的问题是我需要首先加载页面,然后运行更新,否则页面超时并且更新失败。显示页面只有几个标签,这就是我需要的所有标签,因为页面会经常刷新并运行更新。但是,我需要更新方法才能将结果放到屏幕上。我没有问题让更新运行,只是确保显示结果。我没有按下按钮,没有使用任何形式。

这是我的页面代码:

<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/

1 个答案:

答案 0 :(得分:1)

将控件包装在UpdatePanel中。这是一个穷人的AJAX。将控件(或整个页面)放入内容模板中。然后在“触发器”部分中,告诉它要监视哪些控件以及要捕获的事件。它会做其余的事情。在你的情况下,从这里你只需要触发某种事件。它可能是一个javascript来触发onLoad上的按钮,甚至是一些其他控件的绑定事件。这并不重要。

<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>