2010-03-25 59 views
0

我試圖實現與UpdatePanel內尋呼一個GridView。當我做第一次點擊時,一切都很好。分頁開始並快速加載下一組數據。但是,當我嘗試點擊另一頁數據鏈接時,出現以下錯誤:ASP.Net GridView控件的UpdatePanel尋呼提供錯誤在第二次點擊

Sys.WebForms.PageRequestManagerServerErrorException:處理服務器上的請求時發生未知錯誤。從服務器返回的狀態代碼爲:12030

ASPX代碼

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <contenttemplate> 
     <asp:GridView ID="GridView1" runat="server" CellPadding="2" 
       AllowPaging="true" AllowSorting="true" PageSize="20" 
       OnPageIndexChanging="GridView1_PageIndexChanging" 
       OnSorting="GridView1_PageSorting" 
       AutoGenerateColumns="False"> 
      <Columns> 
       <asp:BoundField DataField="ActivityLogID" HeaderText="Activity Log ID" SortExpression="ActivityLogID" /> 
       <asp:BoundField DataField="ActivityDate" HeaderText="Activity Date" SortExpression="ActivityDate" /> 
       <asp:BoundField DataField="ntUserID" HeaderText="NTUserID" SortExpression="ntUserID" /> 
       <asp:BoundField DataField="ActivityStatus" HeaderText="Activity Status" SortExpression="ActivityStatus" /> 
      </Columns> 
     </asp:GridView> 
    </contenttemplate> 
</asp:UpdatePanel> 

代碼背後

private void bindGridView(string sortExp, string sortDir) 
    { 
     SqlCommand mySqlCommand = new SqlCommand(sSQL, mySQLconnection); 
     SqlDataAdapter mySqlAdapter = new SqlDataAdapter(mySqlCommand); 
     mySqlAdapter.Fill(dtDataTable); 

     DataView myDataView = new DataView(); 
     myDataView = dt.DefaultView; 

     if (sortExp != string.Empty) 
     { 
      myDataView.Sort = string.Format("{0} {1}", sortExp, sortDir); 
     } 

     GridView1.DataSource = myDataView; 
     GridView1.DataBind(); 

     if (mySQLconnection.State == ConnectionState.Open) 
     { 
      mySQLconnection.Close(); 
     } 

    } 
     protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     GridView1.PageIndex = e.NewPageIndex; 
     bindGridView(); 
    } 
    protected void GridView1_PageSorting(object sender, GridViewSortEventArgs e) 
    { 

     bindGridView(e.SortExpression, sortOrder); 

    } 

是什麼原因造成第二次點擊錯誤的任何線索?

回答

0

如果頁面上的任何內容在UpdatePanel之外,在第一次點擊後發生變化,或者嘗試更改,第二次點擊會有點不同,但是您的調用再次獲得了第一個值,因爲在UpdatePanel之外,沒有得到更新值,只是再次獲得第一個 - >因此,第二次點擊時產生一個錯誤。

也許你有出方UpdatePanel的一些數據,這就是需要被正確地渲染。 在UpdatePanel中保留任何您更改並使用此控件的內容。

例如,sSQL,你在哪裏存放呢?它的變化?也許點擊其他值更改?

+0

的sSQL值和連接對象被定義和bindGridView函數內構建的。我剛剛離開了發佈的代碼......我確實移動了bindGridView函數內的數據表的聲明,但這似乎沒有幫助。 我也剝奪了一切頁面除了更新面板和GridView,但它似乎仍有問題完全渲染或完成傳呼電話 – joe 2010-03-26 17:03:54

+0

你做的ViewState的任何舉動?例如將它移動到頁面的底部?一般來說,如果你改變了任何模塊,視圖狀態並沒有改善,那麼updatePanel不會第二次得到它 - 如果是的話告訴我,以告訴一些技巧 – Aristos 2010-03-26 20:06:37

0

也許你有出方UpdatePanel的一些數據,這就是需要被正確地渲染。在UpdatePanel中保留任何您更改並使用此控件的內容。

相關問題