如果搜索没有在数据源中返回任何记录,我想在屏幕上显示一条消息,只是不确定语法,
例如
if(gridview.datasource.[number of records] = 0)
{
do a thing
}
或评估数据源背后的linq查询
任何想法?
感谢
答案 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',因为启用了分页。这是当前行页面的计数。但是,转换数据源会为您提供原始数据源返回的计数。因此,只要您了解其中的差异,就可以使用它们。