我想在屏幕上显示一个消息,如果搜索的数据源不返回任何记录,只是不知道语法,盘点记录 - C#
如
if(gridview.datasource.[number of records] = 0)
{
do a thing
}
或评估LINQ查询背后的数据源,
有什么想法吗?
谢谢
我想在屏幕上显示一个消息,如果搜索的数据源不返回任何记录,只是不知道语法,盘点记录 - C#
如
if(gridview.datasource.[number of records] = 0)
{
do a thing
}
或评估LINQ查询背后的数据源,
有什么想法吗?
谢谢
您可以使用gridview的Rows集合。
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”,因为启用分页。这是当前行的页数。但是,转换数据源会为您提供原始数据源返回的计数。所以只要你明白不同之处,你就可以使用。
感谢你的这一点,对未来有用,不需要在项目中进行分页,但是这将派上用场 – DarkW1nter 2011-05-20 13:28:56
不,只有DataControlRowType.DataRow行包含在Rows集合中:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rows(v=vs.80 ).aspx – Larry 2011-05-20 13:09:57
如果启用了分页,行将只为您提供* current *页的行。 – 2011-05-20 13:16:16
工作得很好,谢谢,你能做类似的DataList我想知道吗? – DarkW1nter 2011-05-20 13:18:03