计算数据源中的记录 - c#

时间:2011-05-20 12:57:38

标签: linq visual-studio-2010 datasource

如果搜索没有在数据源中返回任何记录,我想在屏幕上显示一条消息,只是不确定语法,

例如

if(gridview.datasource.[number of records] = 0)
{
 do a thing
}

或评估数据源背后的linq查询

任何想法?

感谢

2 个答案:

答案 0 :(得分:7)

您可以使用gridview的Rows集合。

if(gridview.Rows.Count == 0)
{
 do a thing
}

答案 1 :(得分:3)

您需要将数据源强制转换为绑定的正确类型。仅使用行并不总能为您提供数据源中的总计数。看看这个例子:

<asp:GridView ID="GridView1" runat="server" 
    AllowPaging="true" PageSize="3">
</asp:GridView>

在代码背后:

var fruit = new List<string>() 
    { "banana", "orange", "apple", "strawberry", "melon", "grape" }

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

int rowsCount = GridView1.Rows.Count; // rowsCount = 3

int dataCount = ((List<string>)GridView1.DataSource).Count; // dataCount = 6

所以你可以看到只计算行只返回'3',因为启用了分页。这是当前行页面的计数。但是,转换数据源会为您提供原始数据源返回的计数。因此,只要您了解其中的差异,就可以使用它们。