如果搜索在数据源中没有返回任何记录,我想在屏幕上显示一条消息,只是不确定语法,
例如
if(gridview.datasource.[number of records] = 0)
{
do a thing
}
或计算数据源后面的 LINQ 查询,
有什么想法吗?
谢谢
可以使用网格视图的行集合。
if(gridview.Rows.Count == 0)
{
do a thing
}
您需要将数据源强制转换为它绑定到的正确类型。仅使用行并不总是提供数据源中的总数。请看这个例子:
<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",因为启用了分页。这是当前行页的计数。但是,强制转换数据源会提供原始数据源返回的计数。因此,只要您了解差异,您就可以使用其中任何一个。