これで検索はいくつか行っていますが、探しているものが見つからないようです。私はかなりASP.NETに新しいですが、C#にはありません。私は、Webベースの会計ソフトウェアサービスからのデータでWebストアを更新するために、通常のWebサービス要求を処理するためのページを作成しなければなりませんでした。私が持っている問題は、ページを最初にロードしてからアップデートを実行する必要があり、それ以外の場合はページがタイムアウトしてアップデートが失敗するということです。表示ページにはラベルがいくつかあります。ページが頻繁に更新されて更新が実行されるので、表示ページには必要なものだけです。しかし、結果を画面に表示できるようにするには、更新メソッドが必要です。私は、アップデートが実行されるのに問題はなく、結果が表示されていることを確認するだけです。私は押されたボタンがなく、使用されるフォームはありません。ここでタスクの完了時にASP.NETラベルを更新する
は私のページのコードです:
<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。誰かがポインタを持っているなら、私は大いに感謝しています。
わかりました。私がしたいことに対する答えを見つけました。私は、UpdatePanelの中で、あなたのコントロールをラップ何か他のものを検索し、これを見つけた...
http://www.simple-talk.com/dotnet/asp.net/implementing-waiting-pages-in-asp.net/
あなたはAJAXについて学ぶ必要があります。 ASP.NETはあなたが思うように動作しません。 –
@JohnSaunders:ここでAJAXが問題だと思いますか?スレッドが完了したときにラベルを設定するコールバックメソッドが必要なようです。 –
@JamesJohnson:ASP.NETのようなコールバックメソッドを使用することはできません。ページが処理を完了した後に呼び出され、もはや存在しなくなりました。彼は明らかにスレッドが完了するのを待っているページを保持したくはない:ページが完了した後、そしてスレッドが完了した後で、ブラウザの表示を更新したいと思う。 –