簡體   English   中英

使用LinqDataSource和分頁的GridView控件中的總行數

[英]Total row count in GridView control using LinqDataSource and paging

我在使用Paging和LinqDataSource作為數據源獲取Gridview中顯示的項目的總行數時遇到問題。

我嘗試了幾種方法:

protected void GridDataSource_Selected(object sender, LinqDataSourceStatusEventArgs e)  
{  
    totalLabel.Text = e.TotalRowCount.ToString();  
}

每次返回-1。

protected void LinqDataSource1_Selected(object sender, LinqDataSourceStatusEventArgs e)  
{  
    System.Collections.Generic.List<country> lst  = e.Result as System.Collections.Generic.List<country>;  
    int count = lst.Count;  
}

只給我當前頁面的計數,而不是總數。

還有其他建議嗎?

在這些情況下,在這些事件中返回的LinqDataSourceEventArgs返回-1:

-1如果在數據修改操作期間創建了LinqDataSourceStatusEventArgs對象; 如果通過將AutoPage設置為true並將RetrieveTotalRowCount設置為false來啟用自定義分頁,則返回-1。

請在此處查看更多信息 - 底部的表格,顯示要設置以獲取行計數的不同屬性,但看起來您必須將AutoPage和AllowPage屬性設置為true或兩者都為false。

根據上面鏈接中的表和您提供的示例判斷Autopage設置為false,但AllowPaging設置為true,因此它返回頁面中的行數。

HTH

TotalRowCount屬性僅對AutoPage和AllowPaging的某些值有效。 它們都應該是真的(在你的情況下)或兩者都是假的。

請閱讀以下頁面,了解TotalRowCount屬性的說明。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linqdatasourcestatuseventargs.totalrowcount.aspx

好吧,我已經將AutoPage和AllowPaging設置為true。 我已經通過在調試模式下檢查其值來確認RetrieveTotalRowCount設置為true(無法找到更改其值的位置)。

它仍然返回-1。

唯一缺少的是:

-1如果在數據修改操作期間創建了LinqDataSourceStatusEventArgs對象;

而且我不太清楚這意味着什么。 我正在使用LinqDataSource的修改版本來啟用一些自定義過濾,這可能是問題所在。 另一方面,雖然在調試模式下亂搞,我確實設法檢查arguments.TotalRowCount的值,它是正確的。 但是Selected事件中出現的值始終為-1。

我遇到了同樣的問題。 我用以下代碼行解決了我的問題

protected void LinqDataSourcePoints_Selected(object sender,LinqDataSourceStatusEventArgs e){totalRecords =(e.Result as List).Count; }

說明:1 - 將e.Result解析為數據源2 - 獲取計數。

對我來說很完美。

試試這個,我已經測試過,它會返回所有行。

  protected void LinqDataSource1_Selecting(object sender, LinqDataSourceStatusEventArgs e)
        {
           System.Collections.Generic.List<country> lst  = e.Result as System.Collections.Generic.List<country>;

           int count = lst.Count;
        }

確保你的活動是“ 選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM