zoukankan      html  css  js  c++  java
  • 处理GridView数据源(DataTable)为空行(转)

    ///
        /// 绑定GridView
        ///

    private void BindGridView()
        {
            DataTable dt = RunQuery(string.Format("Select NodeValue, NodeText From TreeViewTable where 1 > 2")).Tables[0];

            if (dt.Rows.Count == 0)
            {
                //生成DataRow对象
                DataRow row = dt.NewRow();

                foreach (DataColumn column in dt.Columns)
                {
                    //重新设置AllowDBNull属性
                    column.AllowDBNull = true;
                    //显式赋值成null
                    row[column] = DBNull.Value;
                }
                //将DataRow对象添加至table中
                dt.Rows.Add(row);
            }
           
            this.GridView1.DataSource = dt.DefaultView;
            this.GridView1.DataBind();
        }

    protected void GridView1_DataBound(object sender, EventArgs e)
        {
            //如果是空行,判断条件为:行数=1且主键列=DBNull.Value,如果需要区分是初始化/提交状态,可以加入 Page.IsPostBack 判断
            if (GridView1.DataKeys.Count == 1 && GridView1.DataKeys[0].Values[0] == DBNull.Value)
            {
                //清除掉该空行的全部单元格
                GridView1.Rows[0].Cells.Clear();
                //新建单元格对象
                TableCell cell = new TableCell();
                //合并单元格
                cell.ColumnSpan = GridView1.Columns.Count;

                this.GridView1.EmptyDataText = "没有查找到符合条件的记录";

                //设置单元格内容为GridView1.EmptyDataText,把提示文本给分离出来
                cell.Text = GridView1.EmptyDataText;
                //向空行中加入单元格
                GridView1.Rows[0].Cells.Add(cell);
                //让该行应用EmptyDataRowStyle样式,这样可以更加灵活,比如可以很容易的应用主题
                GridView1.Rows[0].ApplyStyle(GridView1.EmptyDataRowStyle);
            }
        }

    注意:要设置GridView的DataKeyNames

  • 相关阅读:
    centos7 安装jdk及mysql8
    centos7 挂载数据盘
    windows server r2 之如何设置共享文件夹访问不需要输入用户名和密码
    svn 常见问题记录
    设计模式之代理模式
    ASP.Net在64位环境开发部署常见问题
    oracle 之创建用户,表空间,授权,修改用户密码
    oracle 常用语句
    IIS服务器 远程发布(Web Deploy)配置 VS2010 开发环境 Windows Server 2008服务器系统
    vs2012使用64位IIS EXPRESS调试
  • 原文地址:https://www.cnblogs.com/EddyPeng/p/1225878.html
Copyright © 2011-2022 走看看