1

1つのasp.netページに2つのUpdatePanelがあります。1つには送信ボタンと進行状況バーがあり、このボタンをクリックすると、XMLファイルからデータを取得してデータベースに保存するプロセスがあります。

2 番目の更新パネルは、XML からのデータ挿入の進行状況に関するログの内容を表示するために使用され、タイマー コントロールを使用して更新されます。

問題は、リクエストが最初のパネルから送信されると、2 番目のパネルがコンテンツの更新を停止することです。

ページを更新するには、他のライブラリまたはある種の jq メソッドを試す必要があります。

事前に感謝

これが私のコードです...

 <asp:scriptmanager runat="server" ID="scrpManager">     </asp:scriptmanager> 
   <asp:UpdatePanel ID="updLeft" runat ="server">
 <ContentTemplate>   
    <asp:Button ID="Submit" runat="server" onclick="Submit_Click" 
        Text="Process" />
        </ContentTemplate>
<Triggers >
<asp:AsyncPostBackTrigger ControlID ="Button3" EventName="Click" />
  </Triggers>

</asp:UpdatePanel>  
      <asp:UpdateProgress runat="server" AssociatedUpdatePanelID="updLeft" 
        ID="UpdateProgress21">
    <ProgressTemplate>
        <div class="loadingbox">
            <img src="spinner.gif" align="absmiddle" />&nbsp;&nbsp;
            <asp:Label ID="lblProgress21" runat="server">Please wait while processing...</asp:Label>
        </div>
    </ProgressTemplate>
</asp:UpdateProgress> 

<asp:UpdatePanel ID="updPnlRight" runat ="server" >
<ContentTemplate >  
 <asp:Timer Interval="1000" ID="timer1" runat="server" ontick="timer1_Tick"  ></asp:Timer> 

    <asp:GridView ID="GridView1" ShowHeader ="false" AutoGenerateColumns ="false" runat="server">
    <Columns >
    <asp:BoundField  DataField ="status_MSG" HeaderText ="" /> 
    </Columns>
     </asp:GridView>
    </ContentTemplate>
    <Triggers >
   <ajax:AsyncPostBackTrigger ControlID ="timer1" EventName="Tick" />

  </Triggers> 
    </ajax:UpdatePanel> 

    protected void Submit_Click(object sender, EventArgs e)
{
    //Do insertion process , takes 30 minutes,
}
4

1 に答える 1

0

更新パネルで悲惨なことしかありませんでした。クライアント側のテンプレートなどの代替手段を使用することをお勧めします。Knockout.js と Angular.js は、おそらく開始するのに適した場所です。

コード、または問題の (非) 動作例を貼り付けていただければ、修正を試みます。

于 2012-12-03T07:24:26.217 に答える