好的,所以我做了一些搜索,但我似乎无法找到我正在寻找的东西。我是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/
答案 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>