ASP.NET动态生成GridView的使用

根据DataTable动态生成包含checkbox的GridView,其中DataTable中对应checkbox那一列的值必须为bool值。

; i < ChargingGridView.Rows.Count; i++].Controls[])).Attributes.Add(; i < gridView.Rows.Count; i++].Controls[].GetType() == ];
                if (!(cb == null))
                {
                        cb.Enabled = true;
                }
           }
      }
}

有时候需要把GridView转换成DataTable:

public static DataTable GetDataTableFromGridView(GridView gv, DataTable dt)
{
    GridViewRow headerRow = gv.HeaderRow;
    int columnCount = headerRow.Cells.Count;
    for (int i = 0; i < columnCount; i++)
    {
        DataColumn dc = dt.Columns.Add();
        dc.ColumnName = headerRow.Cells[i].Text.Trim();
        if ("选择" == headerRow.Cells[i].Text.Trim())
        {
            dc.DataType = typeof(bool);
        }
        else
        {
            dc.DataType = typeof(string);
        }
    }

    for (int i = 0; i < gv.Rows.Count; i++)
    {
        DataRow dr = dt.NewRow();

        for (int j = 0; j < gv.Columns.Count; j++)
        {
            if ("选择" == headerRow.Cells[j].Text.Trim())
            {
                if (true == ((System.Web.UI.WebControls.CheckBox)(gv.Rows[i].Cells[j].Controls[0])).Checked)
                {
                    dr[j] = true;
                }
                else
                {
                    dr[j] = false;
                }
            }
            else if (gv.Rows[i].Cells[j].Text.Trim() == "&nbsp;")
            {
                dr[j] = "";
            }
            else
            {
                dr[j] = gv.Rows[i].Cells[j].Text.Trim();
            }
        }

        dt.Rows.Add(dr);
    }
    return dt;
}
更多相关文章
  • 一.动态添加模板列: 1.建立模板列样式: 说明:下边代码可以直接写在aspx文件中,也可以单独建立cs文件:另外,我没有写button.linkButton等控件,意思差不多,不过当需要添加事件时,记得将事件名称传入,并附加在控件上 public class GridViewTemplate : ...
  • 1.创建Field BoundField requestitem = new BoundField();//注意Field可以是ButtonField,TemplateField,...等等GridView支持的Field 2.添加Field requestitem.DataField      r ...
  • ASP.NETMVC动态生成网站菜单及子菜单
    在开发ASP.NET MVC网站时,Insus.NET想实现动态产生网站的主菜单及子菜单. 你需要在网站管理后台管理此2张表(Menu,SubMenu)的信息,添加,删除,编辑,更新等. Sequence字段是序号.主菜单按此序号排序.IsMenu字段,添加上来的,不一定是菜单字段.下面Insus. ...
  • Asp.Net(C#)生成PDF详解(支持中文.水印.页眉.页脚.表格等)2010年8月19日浮出水面者我要盖楼  第二篇: Hello PDF! 你好,PDF! 有了 上一篇 的准备工作,我们现在开始真正的创建PDF的旅程了. 作为编程界的惯例,第一篇,当然是非 Hello World 莫属啦 , ...
  • http://www.dotnetbips.com/articles/displayarticledetails.aspx?articleid=520[原文源码下载][译者改后源码下载][翻译]动态创建GridView的列(第一部分)原文发布日期:2006.10.27作者:Bipin Joshi翻译 ...
  • 原文地址:http://www.dotnetbips.com/articles/displayarticledetails.aspx?articleid=521[原文源码下载][译者改后源码下载][翻译]动态创建GridView的列(第二部分)原文发布日期:2006.11.24作者:Bipin Jo ...
  • dynamic-css动态CSS库,使得你可以借助MVVM模式动态生成和更新css,从js事件和css选择器的苦海中脱离出来
    dynamic-css 使得你可以借助 MVVM 模式动态生成和更新 css,从而将本插件到来之前,打散.嵌套在 js 中的修改样式的代码剥离出来.比如你要做元素跟随鼠标移动,或者根据滚动条位置的变化而触发一些效果,原本你要写 js 去绑定滚动事件,然后计算偏移量,然后更新元素 css,使用 dyn ...
  • 使用JSTL动态生成表格Table
    为了给用户更好的体验,在很多情况下,我们需要动态生成表格来实现表单的灵活性展示.有些人喜欢在后端代码动态创建HTML,来展现表格:也有的人喜欢在前端动态创建Table.因为表格Table本身是一种前端展示性HTML语言,所以我更喜欢使用前端语言动态创建表格.接下来,本文将展示如何使用JSTL动态创建 ...
一周排行
  • MMM高可用MySQL服务集群解决方案
    MMM高可用方案简介    MMM(Master-Master Replication M ...
  • SQLServer环形缓冲区RingBuffer--介绍
    SQL Server 环形缓冲区(Ring Buffer) -- 介绍以下关于Ring B ...
  •  sshd2配置指要 #sshd是商业化的ssh守护程序,漏洞比openssh少: #下载 #ftp://ftp.ssh.com/pub/ssh #linux/freebsd下的服务端程序源码: ftp://ftp. ...
  • 在开源架构上部署虚拟化是红帽(RedHat)虚拟化技术的一大特色.借助自身在Linux企业应用研发上积累的多年技术经验,红帽在系统架构与管理方面拥有自己的个性与优势.08年9月,红帽以1.07亿美元收购Qumrane ...
  • Sqlplus联机文档学习 地址:http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_four.htm#i1039255 [原文] En ...
  • sublime - 主题 编写代码质量的提升.是因为好的Theme潜移默化的结果Material Theme 主题设置 // Other available theme options: // 其他可用的主题选项: ...
  • Hashtable的应用非常广泛,HashMap是新框架中用来代替Hashtable的类,也就是说建议使用HashMap,不要使用Hashtable.可能你觉得Hashtable很好用,为什么不用呢?这里简单分析他们 ...
  • vsphere5.1配置EVC的简单说明
    因新采购了一台服务器,由于cpu型号较新所以vmware 提示cpu兼容性问题,无法实现热 ...
  • iTunes管理iOS很方便,但是出于苹果对于Mac的偏爱,所以iTunes在Windows平台下总是会出现若干兼容不良现象.而对磁盘空间的管理,更是其中重点.苹果将所有的下载应用和备份文件,默认安装在C盘的举动,让 ...
  • 装有虚拟机(如安装ubuntu)的XP系统,插入U盘后,在右下角显示.如果想将U盘挂载到虚拟机上,就要在选在设备--分配USB设备中的选项.在第一次选中时,XP系统提示安装驱动,我们只要一步一步点下去就OK了.系统重 ...