繁体   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