一般我们用gridview 绑定数据的时候,当数据源是空的时候,通常是写:EmptyDataText="没有任何数据可以显示",这样的话表头是不显示的,下面的代码实现当数据源是空的时候,我们不仅显示表头,而且显示:没有任何数据可以显示,图片在最下面:

注意:一定要要设

EmptyDataText="没有任何数据可以显示";然后在.cs文件里面bind()方法里面绑定数据源之后(this.GVpositionrecods.DataBind())之后,把对应的代码复制过去,就OK了。

下面是代码:

.aspx

代码

<head runat="server">
    <title>职位申请记录</title>
    <link rel="stylesheet" href="css/common.css" type="text/css" />
    <style type="text/css">                  .cssPager span {  color:blue;}             </style>
</head>
<body>
    <form id="form1" runat="server">
        <div id="man_zone">
            <center>
                <asp:GridView  AllowSorting="True" ID="GVpositionrecods" runat="server" PageSize="12" AllowPaging="True"
                    EmptyDataText="没有任何数据可以显示" Width="99%" AutoGenerateColumns="False" OnRowDataBound="GVpositionrecods_RowDataBound"
                    OnSelectedIndexChanged="GVpositionrecods_SelectedIndexChanged" OnSelectedIndexChanging="GVpositionrecods_SelectedIndexChanging"
                    OnPageIndexChanging="GVpositionrecods_PageIndexChanging" OnRowCreated="GVpositionrecods_RowCreated" OnSorting="GVpositionrecods_Sorting">
                    <Columns>
                        <asp:TemplateField HeaderText="职位" SortExpression="zhiwei">
                            <ItemTemplate>
                                <a href='throwseeen2.aspx?qiyeid=<%#Eval("qiyeid")%>&id=<%#Eval("ORDER_FORM_ID") %>'>
                                    <%#Eval("zhiwei") %>
                                </a>
                            </ItemTemplate>
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="企业名称" SortExpression="qiyeid">
                            <ItemTemplate>
                                <a href='seeenlist.aspx?getidforen=<%#Eval("qiyeid")%>'>
                                    <%#Eval("qiye")%>
                                </a>
                            </ItemTemplate>
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:TemplateField>
                        <asp:BoundField DataField="COUNT" HeaderText="人数" SortExpression="COUNT">
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:BoundField>
                        <asp:BoundField DataField="STAR_TIME"  SortExpression="STAR_TIME"  HeaderText="发布时间" DataFormatString="{0:yyyy-MM-dd}"
                            HtmlEncode="False">
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:BoundField>
                        <asp:BoundField DataField="END_TIME" SortExpression="END_TIME" HeaderText="结束时间" DataFormatString="{0:yyyy-MM-dd}"
                            HtmlEncode="False">
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:BoundField>
                        <asp:BoundField DataField="flag" HeaderText="状态">
                            <ItemStyle HorizontalAlign="Center" />
                        </asp:BoundField>
                    </Columns>
                    <AlternatingRowStyle BackColor="#E2F8FF"></AlternatingRowStyle>
                    <HeaderStyle HorizontalAlign="Center" BackColor="#99CCFF"></HeaderStyle>
                <PagerStyle CssClass="cssPager" />
                </asp:GridView>
                <asp:Label ID="lbcontent" runat="server"></asp:Label>
            </center>
        </div>
    </form>
</body>

.cs

代码

public void bind()
    {
        //得到对应的简历的ID,从SN里面查看值
        ccwu.Model.T_RESUME_INFO listTemp = (ccwu.Model.T_RESUME_INFO)Session["t_resume_info"];
        ccwu.Model.T_ORDER_RESUME torderresume = new ccwu.Model.T_ORDER_RESUME();
        int id = Convert.ToInt32(listTemp.ID.ToString());
        //得到对应的简历的ID,从SN里面查看值

ccwu.DAL.T_JOB jobdal = new ccwu.DAL.T_JOB();
        string where = "RESUME_INFO_ID='" + id.ToString() + "'";

DataSet ds = jobdal.getlistResume(where);

DataView dv = new DataView(ds.Tables[0]);

dv.Sort = ViewState["sortExp"].ToString() + " " + ViewState["sortDir"].ToString();

GVpositionrecods.DataSource = dv;

this.GVpositionrecods.DataBind();

if (this.GVpositionrecods.Rows.Count > 0)
        {

}
        else//如果数据源是空的
        {
            //表头的设置
            GridViewRow row = new GridViewRow(-1, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
            foreach (DataControlField field in this.GVpositionrecods.Columns)
            {
                TableCell cell = new TableCell();
                cell.Text = field.HeaderText;
                cell.Width = field.HeaderStyle.Width;
                cell.Height = field.HeaderStyle.Height;
                cell.ForeColor = field.HeaderStyle.ForeColor;
                cell.Font.Size = field.HeaderStyle.Font.Size;
                cell.Font.Bold = field.HeaderStyle.Font.Bold;
                cell.Font.Name = field.HeaderStyle.Font.Name;
                cell.Font.Strikeout = field.HeaderStyle.Font.Strikeout;
                cell.Font.Underline = field.HeaderStyle.Font.Underline;
                cell.BackColor = field.HeaderStyle.BackColor;
                cell.VerticalAlign = field.HeaderStyle.VerticalAlign;
                cell.HorizontalAlign = field.HeaderStyle.HorizontalAlign;
                cell.CssClass = field.HeaderStyle.CssClass;
                cell.BorderColor = field.HeaderStyle.BorderColor;
                cell.BorderStyle = field.HeaderStyle.BorderStyle;
                cell.BorderWidth = field.HeaderStyle.BorderWidth;
                row.Cells.Add(cell);
            }
            TableItemStyle headStyle = this.GVpositionrecods.HeaderStyle;
            TableItemStyle emptyStyle = GVpositionrecods.EmptyDataRowStyle;
            emptyStyle.Width = headStyle.Width;
            emptyStyle.Height = headStyle.Height;
            emptyStyle.ForeColor = headStyle.ForeColor;
            emptyStyle.Font.Size = headStyle.Font.Size;
            emptyStyle.Font.Bold = headStyle.Font.Bold;
            emptyStyle.Font.Name = headStyle.Font.Name;
            emptyStyle.Font.Strikeout = headStyle.Font.Strikeout;
            emptyStyle.Font.Underline = headStyle.Font.Underline;
            emptyStyle.BackColor = headStyle.BackColor;
            emptyStyle.VerticalAlign = headStyle.VerticalAlign;
            emptyStyle.HorizontalAlign = headStyle.HorizontalAlign;
            emptyStyle.CssClass = headStyle.CssClass;
            emptyStyle.BorderColor = headStyle.BorderColor;
            emptyStyle.BorderStyle = headStyle.BorderStyle;
            emptyStyle.BorderWidth = headStyle.BorderWidth;
            //空白行的设置
            GridViewRow row1 = new GridViewRow(0, -1, DataControlRowType.EmptyDataRow, DataControlRowState.Normal);
         
                TableCell cell1 = new TableCell();

cell1.Text = "没有任何数据可以显示";
                cell1.BackColor = System.Drawing.Color.White;
                row1.Cells.Add(cell1);
                cell1.ColumnSpan = 6;

if (this.GVpositionrecods.Controls.Count == 0)
            {
                GVpositionrecods.Page.Response.Write("<script language='javascript'>alert('必须在初始化表格类之前执行DataBind方法并设置EmptyDataText属性不为空!');</script>");
            }
            else
            {
                GVpositionrecods.Controls[0].Controls.Clear();
                this.GVpositionrecods.Controls[0].Controls.AddAt(0, row);
                this.GVpositionrecods.Controls[0].Controls.AddAt(1, row1);
            }
        }

}

知识点1:

GridViewRowDataRowView完全就是两个不相干的东西 是两个级别的事情 一个是控件级别的 一个是数据级别的

GridViewRow:

MSDN解释:呈现 GridView 控件之前,必须先为该控件中的每一行创建一个 GridViewRow 对象。在创建 GridView 控件中的每一行时,将引发 RowCreated 事件。这使您可以提供一个这样的事件处理方法,即每次发生此事件时就执行一个自定义例程(如在行中添加自定义内容)。

使用 RowCreated 事件将正在创建的行的索引存储在该行所包含 LinkButton 控件的 CommandArgument 属性中;(每当创建一行的时候,执行RowCreated事件里面的代码)

知识点2:(在有页码的时候,当前页码变大,且颜色也变)

 

用样式显示当前页码;

<style type="text/css">                  .cssPager span {  color:blue;}             </style>

<PagerStyle CssClass="cssPager" />

转载于:https://www.cnblogs.com/muer/archive/2010/03/26/1697178.html

如何在数据源是空的时候,gridview显示表头(万能)相关推荐

  1. GridView绑定DataSet的DataTable,怎么让它在无记录时能显示表头呀(环境VS2005),在线等 谢谢!!

    主 题:   GridView绑定DataSet的DataTable,怎么让它在无记录时能显示表头呀(环境VS2005),在线等 谢谢!! 作 者:   bolowang (波罗王子)        ...

  2. 利用GridView显示主细表并一次编辑明细表所有数据的例子

    全部代码如下: ASPX: <%@ Page Language="C#" ValidateRequest="false" AutoEventWireup= ...

  3. 用户反馈信息textbox填充数据表,页面使用gridview显示反馈意见

    1.用户反馈信息textbox填充数据表 用户通过radiobuttonlist和textbox输入信息,后台代码将该信息导入数据库中. using System; using System.Coll ...

  4. Android成长日记-使用GridView显示多行数据

    本节将实现以下效果 Ps:看起来很不错的样子吧,而且很像九宫格/se ----------------------------------------------------------------- ...

  5. Android自定义GridView显示一行,并且可以左右滑动

    最近做一个类似滑动菜单栏的title,绑定数据源用的是GrildView,想要实现横着滑动并且GrildView只显示一行.最终采用代码形式在Activity中动态的添加布局实现. ViewGroup ...

  6. GridView 显示 主从表(Master-Detail)注意事项

    http://smartsoft.5d6d.com/thread-795-1-1.html 1.强烈推荐采用强类型数据集作为datasource: 2.datamember 为主表名称: 3.数据集中 ...

  7. ASP.NET gridView 显示图片[转载]

    读研的生活简直就是扯淡,中国的教育原来就是这么的悲催,后悔去读研了.不感叹了,因为帮朋友忙,写了一个关于这个的东西,所以转载别人的代码,学习,学习,不管以后如何学习都是第一位的.废话不说,上代码. 在 ...

  8. GridView显示图片

    参考文章:http://www.cnblogs.com/jll/archive/2005/12/14/297153.html 以下内容出处忘了 = =! 在ASP.NET中经常需要使用GridView ...

  9. android gridview显示本地图片大小,在Android上的GridView中调整图像大小

    您可以尝试根据当前设备的像素密度进行调整. DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDi ...

最新文章

  1. Macosx Setdns
  2. Py之Queue:python库之Queue的简介、安装、使用方法之详细攻略
  3. TCP协议的3次握手和4次挥手
  4. python3安装后无法使用退格键的问题
  5. JavaScript 函数循环、延时、节流、防抖
  6. 浏览器登录_经常用浏览器自动登录忘记了密码?教你一键查看网页星号密码
  7. 自制胎教音乐---太阳当头照
  8. App上架Apple App Store和Google Play流程
  9. 如何使用百度地图实现当前定位
  10. 【golang】aws s3 go sdk
  11. 「运维有小邓」搜索日志数据以作为网络安全情报
  12. 一个C#版的多选题选项及判分设计方案
  13. (好文重发)朴英敏:用crash工具分析Linux内核死锁的一次实战
  14. Rainbond插件体系设计简介
  15. post请求https安全证书问题2.0
  16. 基于FPGA的以太网控制器(MAC)设计(中)
  17. Silent Install Builder制作静默安装包实现软件自动部署
  18. 自动写诗APP项目、基于python+Android实现(技术:LSTM+Fasttext分类+word2vec+Flask+mysql)第三节
  19. 阿里云服务器搭建WORDPRESS案例
  20. Linux管理工具集合

热门文章

  1. 微信第三方平台相关的转发
  2. [GXOI/GZOI2019]宝牌一大堆(dp)
  3. git 实践(二) push的使用
  4. 同样是程序员,他转行在新加坡卖鱼走向巅峰!
  5. Gartner:全球服务器虚拟化市场正在攀向顶峰
  6. openssh-server (= 1:6.6p1-2ubuntu1) but it is not going to be installed
  7. java中IO写文件工具类
  8. 关于JXL读写以及修改EXCEL文件转
  9. java对象初始化顺序的简单验证
  10. jboss7的服务器开启和关闭命令