2014-03-13 53 views
0

我正在使用UpdatePanel中的GridView。更新數據後,單擊與DataBind()綁定的刷新按鈕不會更改頁面上的任何內容,直到數據更新後至少10秒鐘。下面是相關代碼:updatepanel databind不刷新數據,直到數據實際更新後約10秒

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server" /> 
    <div class="container-fluid"> 
      <asp:UpdatePanel runat="server" ID="UpdatePanel1" > 

      <ContentTemplate> 
       <div class="row"> 
       <div class="col-xs-12"> 
         <asp:Button ID="btnRefresh" runat="server" Text="Refresh" CausesValidation="False" CssClass="btn btn-success" OnClick="btnRefresh_OnClick" /> 
        </div> 
       </div> 
       <div class="row"> 
        <div class="col-xs-12"> 
         <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" AllowSorting="True" 
          DataKeyNames="id" DataSourceID="sqldatasource" CssClass="table table-responsive table-hover" 
          OnRowDataBound="GridView1_OnRowDataBound" 
          OnRowCommand="GridView1_OnRowCommand" 
          > 
          <Columns> 
           <asp:CommandField ShowSelectButton="True" SelectText="Open" /> 
           <!-- columns --> 
          </Columns> 
         </asp:GridView> 
        </div> 
       </div> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </div> 
</form> 

而後面的代碼:

protected void btnRefresh_OnClick(object sender, EventArgs e) 
    { 
     GridView1.DataBind(); 
    } 

我使用另一個頁面上的相同類型的設置,而無需使用的UpdateMode或觸發器和沒有問題的數據綁定,但是這不會。

+0

我們可以看到'sqldatasource'嗎? –

+0

就是這樣。我正在移植應用程序,並且以前的應用程序已啓用對數據源的緩存。感謝您指出了這一點。 – user1914368

回答

0

回答後人。 SQL數據源啓用了緩存,所以我刪除了該數據綁定,並且沒有延遲地按預期工作。

<asp:SqlDataSource ID="sqlInProgress" runat="server" ConnectionString="<%$ ConnectionStrings:AppConnectionString %>" EnableCaching="true" CacheDuration="30" 
         SelectCommand =" SELECT [Order].[id] as id, [Checker], [InternalComments], [CompanyName], [ProdLine], [ProductName],[Due], [Fulfillment], [FulfillmentX], [QA], [QAX], FROM [Order], [Companies] where [Order].[CompanyName] = [Companies].[CompanyName] and [stage] = 'In progress' order by Due" />