当数据源为空时,gridview只显示表头

今天在做网页时,发现gridview中的数据源为空时,它不显示,于是就想,能不能让它在没有数据源的时候也显示呢?

于是就在网上找资料,找到了很多,但大部分的都写得比较复杂,经过我不懈的努力,终于找到了几条看似比较简单的代码,经过我的修改和验证,效果出来了,现在把这些代码总结一下,一是留给自己的,二是方便其它人。

方法一:通过在CS中写代码来实现

        sda.Fill(ds, "titles"); //这里的titles是指表名


        DataTable dt = new DataTable();
        dt.Columns.Add("title");
        dt.Columns.Add("type");
        dt.Columns.Add("pub_id");
        dt.Columns.Add("price");//title,type,pub_id,price都是列名

        if (dt.Rows.Count == 0) //判断表中的行数,如果为0,表示没有找到,即数据源为空
        {
            dt.Rows.Add(dt.NewRow());//添加一条新的空白行
        }

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

        int columncount = dt.Columns.Count; //有多少列
        GridView1.Rows[0].Cells.Clear(); //给第一行的每列清零
        GridView1.Rows[0].Cells.Add(new TableCell());
        GridView1.Rows[0].Cells[0].ColumnSpan = columncount;//跨列数
        GridView1.Rows[0].Cells[0].Text = "No Record Found!";
        GridView1.Rows[0].Cells[0].Style.Add("text-align", "center");

 

方法二:在源中表示

方法很简单:就是先运行有数据的gridview,然后查看编译的页面的“查看源文件” 把里面生成的table的样式抠出来,放到 <EmptyDataTemplate> </EmptyDataTemplate>。

这样还没完,还有二步:第一步:在<table></table>中,保留第一二行,其它的行都删除。第一行的内容不变,第二行合并成一个单元格,并在此单元格里写上“没有找到记录”这样的信息。位置随你,本人喜欢让其居中

第二步:回到CS文件,把原来能查到数据的sql语句改一下,改成不能查找数据的sql语句。

 

方法三:如果不用EmptyDataTemplate模板,可以设置GridView 的EmptyDataText属性,这样只显示一句话和一个边框

本人觉得不是很好看。虽然简单,不太喜欢!

此时,大功告成!

 

附:第二种方法其实是以表格的方式显示没有数据源时的信息,从表面上看去像显示了gridview的信息,其实不是。这就要求大家将表格的样式最好设置得和gridview的样式一样,让外人看不出破绽。呵呵!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值