2017-06-08 15 views
0

私はGridViewにいくつかのデータを示し、最後の列にButtonという3つの他の列の値を組み合わせています。 このファンクションをrowCommandGridDataと呼ぶだけで、GridViewを簡単にリフレッシュすることができました。UpdateProgressのProgressBarは、データがフェッチされる前に期限切れになります。

protected void GridviewProcess_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     try 
     { 
      if (e.CommandName == "More") 
      { 
       objENT = new ENT(); 

       int index = Convert.ToInt32(e.CommandArgument.ToString()); 
       Label locCode = (Label)GridviewProcess.Rows[index].FindControl("lbl0"); 
       Label SurveyNo = (Label)GridviewProcess.Rows[index].FindControl("lbl2"); 
       Button Combine = (Button)GridviewProcess.Rows[index].FindControl("btnCombine"); 

       Combine.Enabled = false; 
       objENT.LocationCode = locCode.Text; 
       objENT.SurveyNumber = SurveyNo.Text; 
       objENT.ProcType = "CREATECUSTOMER"; 
       DataSet ds = new DataSet(); 
       ds = BLL.CdCustomer(objENT); 


      } 

     } 
     catch (Exception ex) 
     { 
      ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Some Error occurred Please refresh the page')", true); 

     } 
     finally 
     { 
      Griddata(); 
     } 

    private void Griddata() 
    { 
     objENT.ProcType = "PAGEGRIDDATA"; 
     DataSet ds = BLL.ProcessGrid(objENT); 
     string check = ds.Tables[0].Rows[0]["TOTAL_CUSTOMER"].ToString(); 


     GridviewProcess.DataSource = ds.Tables[0]; 
     ViewState["Grid"] = ds.Tables[0]; 
     GridviewProcess.DataBind(); 
    } 

後、私はこのProgressBar

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
        <ContentTemplate> 
         <asp:UpdateProgress ID="UpdateProgress2" runat="server" AssociatedUpdatePanelID="UpdatePanel2"> 
          <ProgressTemplate> 
           <img src="images/progress_bar.gif" style="max-width: 250px" /> 
          </ProgressTemplate> 
         </asp:UpdateProgress> 
         <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
          <ContentTemplate> 
           <asp:GridView ID="GridviewProcess" AllowPaging="true" CssClass="GridHeader" PagerSettings-Mode="NextPreviousFirstLast" PagerSettings-PreviousPageText="<-Prev  " PagerSettings-Visible="true" PagerSettings-NextPageText="  Next->" 
            PagerSettings-FirstPageText="<=FirstPage  " PagerSettings-LastPageText="  LastPage=>"  PagerStyle-Font-Bold="true" 
            OnPageIndexChanging="GridviewProcess_PageIndexChanging" PageSize="12" OnRowDataBound="GridviewProcess_RowDataBound" OnRowCommand="GridviewProcess_RowCommand" runat="server" Style="text-align: center" Width="99%" 
            AutoGenerateColumns="false"> 
            <Columns> 
             <asp:TemplateField HeaderText="Total Customers" HeaderStyle-BackColor="#99CCCC"> 
              <ItemTemplate> 
               <asp:Label ID="lbl7" runat="server" Text='<%# Eval("TOTAL_CUSTOMER") %>'> 

               </asp:Label> 
               <asp:Button ID="btnCombine" CssClass="btn-primary btn" Text="Combine" 
                CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" CommandName="More" 
                Style="padding-top: 1%; padding-bottom: 1%; margin-top: 1px; margin-bottom: 1px" runat="server" /> 

              </ItemTemplate> 
             </asp:TemplateField> 
            </Columns> 

           </asp:GridView> 
          </ContentTemplate> 
         </asp:UpdatePanel> 
        </ContentTemplate> 
        <Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnAddi" EventName="Click" /> 
        </Triggers> 
       </asp:UpdatePanel> 

ProgressBarが表示されますが、追加機能GridData()後{}、それは習慣GridViewリフレッシュと呼ばれています。 変更が反映された後は、ページ全体が更新されます。私は任意のJSまたはこのProgressBarに使用CSSを持っていない間違っていただきました!私は理解していない ... ...(問題ということですか?)

答えて

0

はSOの質問

上の問題への解決策を見つけました

UpdateProgress Timed Out before data could be processed

実際の問題があった。 私は私のデータベースからいくつかのデータをフェッチしGridViewに表示私のASP.NETページ、上のボタンを持っています。

このプロセスには時間がかかるので、私は私がのUpdateProgress AJAXコントロールを追加しますと思いました。今すぐボタンをクリックすると、UpdateProgressイメージが表示され、データがデータベースから正常に取得されています(私は自分のDBにあるいくつかのログからこれをチェックしました)。

UpdateProgress画像のみを約2分間示しています。しかし、2つの問題があります。しかし、私のButtonClickイベントは完了するまでに約5分かかります。私の仕事は、その目的に反している、完了する前でも現れて基本的にUpdateProgress停止。

私はSOのいずれかでこれを見つけたとして、それが出てAjaxのタイミングである可能性が高い問題を1として

回答。デフォルトのタイムアウトは90秒です。 ScriptManager'sAsyncPostBackTimeoutプロパティその利用を増やすには:AJAX呼び出しがタイムアウトした場合

<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="400"> 
</asp:ScriptManager> 

は、ページ上のコントロールは、タイムアウトが(2)と同様の問題を解決する可能性があります増やすので、正しく動作しない場合があります。

関連する問題