templatefield 动态_GridView动态创建templateField | 学步园
今天有些时间,把用cs代码添加编辑列及动态添加编辑模板作了整理。动态添加编辑列比较简单,即
TemplateField tf=new TemplateField(),但难得是 往编辑列里动态添加编辑模版项 ItemTemplate。那天上网找了好多资料,才找到解决方法。先创建一个类继承模板接口 ITemplate,用构造函数实现返回Template类。废话不多说了,现给出例子,看了就清楚了。例子延续前面的动态绑定字段列的。
创建Template 的类 cs:GVItemTemplate.cs
public class GridViewItemTemplate:ITemplate
{
private string obj; //控件对象的字符串,以此来判断具体创建哪个控件
private DataControlRowType templateType; //当前行的模板 (Header,item)
private string colName; //控件要显示的字符,或是绑定数据源的字段列名
public GridViewItemTemplate(DataControlRowType rtype, string controlStr, string colN)
{
templateType = rtype;
colName = colN;
obj = controlStr;
}
public GridViewItemTemplate(DataControlRowType rtype, string colN)
{
templateType = rtype;
colName = colN;
obj = "TextBox";
}
public void InstantiateIn(System.Web.UI.Control container)
{
switch (templateType)
{
case DataControlRowType.Header:
Literal headlt = new Literal();
headlt.Text = colName;
container.Controls.Add(headlt);
break;
case DataControlRowType.DataRow:
switch (obj.ToLower())
{
case "htmlcheckbox":
HtmlInputCheckBox cbkeys = new HtmlInputCheckBox();
cbkeys.ID = "cb_keys";
cbkeys.DataBinding += new EventHandler(this.CheckBoxDataBinding);
container.Controls.Add(cbkeys);
break;
default:
TextBox myTextBox = new TextBox();
myTextBox.DataBinding += new EventHandler(this.TextBoxDataBinding);
container.Controls.Add(myTextBox);
break;
}
break;
default:
break;
}
}
private void TextBoxDataBinding(Object sender, EventArgs e)
{
TextBox myTextBox = (TextBox)sender;
GridViewRow row = (GridViewRow)myTextBox.NamingContainer;
myTextBox.Text = System.Web.UI.DataBinder.Eval(row.DataItem, colName).ToString();
}
private void CheckBoxDataBinding(Object sender, EventArgs e)
{
GridViewRow row=null;
switch (obj.ToLower())
{
case "htmlcheckbox":
HtmlInputCheckBox hcbox = (HtmlInputCheckBox)sender;
row= (GridViewRow)hcbox.NamingContainer;
hcbox.Value = System.Web.UI.DataBinder.Eval(row.DataItem, colName).ToString();
break;
default:
CheckBox cbox = (CheckBox)sender;
row = (GridViewRow)cbox.NamingContainer;
cbox.Text = System.Web.UI.DataBinder.Eval(row.DataItem, colName).ToString();
break;
}
}
}
使用GridView控件的页面 cs代码:TestGridView.aspx.cs
void BindFields(int tbid)
{
TemplateField tf = new TemplateField();
tf.ItemTemplate = new GridViewItemTemplate(DataControlRowType.DataRow, "htmlcheckbox", "dataKey");
tf.HeaderTemplate = new GridViewItemTemplate(DataControlRowType.Header, "htmlcheckbox", "");
tf.HeaderStyle.CssClass = "cbox";
this.gv_Data.Columns.Add(tf);
}
templatefield 动态_GridView动态创建templateField | 学步园相关推荐
- linux定位so快捷方式_Linux动态库(.so)搜索路径 | 学步园
众所周知,Linux动态库的默认搜索路径是/lib和/usr/lib.动态库被创建后,一般都复制到这两个目录中.当程序执行时需要某动态库, 并且该动 态库还未加载到内存中,则系统会自动到这两个默认搜索 ...
- asp.net html table,在ASP.NET中利用HtmlTable动态创建表格 | 学步园
ASP.NET 2.0 文件1: Deafault.aspx HtmlTable演示 HtmlTable实例演示 输入表格行数: 输入表格单元格: 文件2:Deafault.aspx.cs using ...
- java treetable_在Swing中创建TreeTable | 学步园
TreeTable是Tree和Table的一个结合- 就是一个即能够展开和收起行,同时也能够显示多个列的组件.在Swing的标准包里没有一个叫做JtreeTable的组件,但是我们很容易通过把Jtre ...
- db2dual_db2 oracle 创建 序列 | 学步园
1.创建序列最小值1,最大值2147483647, 并 修改 从 500开始++CREATE SEQUENCE "LXGZZS"."SEQ_COMMON" AS ...
- Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园
Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园
- SAP QM中阶之动态修改规则创建
SAP QM中阶之动态修改规则创建 1, 执行事务代码QDR1或者如下的菜单路径, 可以用来创建动态修改规则. 点击菜单或者执行事务代码QDR1, 进入如下界面, 输入DMR的code,比如Z01,回 ...
- mysql event scheduler机制 与 动态表名创建
mysql event scheduler机制 与 动态表名创建 今天有一个需求,需要定时在mysql创建表与删除表,以及根据日期命名表名.诚然,通过外部程序很容易实现与控制这一切. 但是需要额外的服 ...
- Python动态类和动态方法的创建和调用
借助于python的动态语言特性,很容易对对象进行添加方法或者属性,这也是python的灵活之一. 动态生成类的属性及其方法 在某些情况可能要根据不同的参数来动态生成不同的实例方法.静态方法.类方法. ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
最新文章
- LVS +DR +keepalived高可用性web集群
- 如何禁止Linux内核的-O2编译选项【转】
- 【转】Android子线程真的不能更新UI么
- 基于casperjs、resemble.js实现一个像素对比服务
- 【阿里妈妈营销科学系列】第七篇:目标群组发现
- php 实现百度坐标转换,PHP实现腾讯与百度坐标转换
- 嘉奥丰农显示无法连接服务器,Arcaea无法连接服务器如何解决
- [转载]c语言中命令行参数argc,argv
- windows系统上PrtSc,ScroLk,Pause等三个功能按钮的作用
- 使用活字格制作企业办公用品管理软件
- 【推荐】样本/数据一致性检验的方法
- 运营商价格战终于打起来了,中国联通也有19元套餐
- php自动计算增长率,Oracle表空间增长率监控脚本
- 杂谈随想第002篇:博客访问量破万的想法
- 前端面试题-10-11作用域 作用域链
- html5 羽毛球,当上班族和羽毛球碰撞到一起,这样的生活才是标配
- 【思科ACI】APIC手动安装及升级
- 图形推理题 答案揭晓
- 2023程序员今年的一些现状
- 惠普计算机怎样添加程序,小编教你惠普电脑如何进入bios设置
热门文章
- WPF自定义控件 —— 装饰器
- Maven的安装以及在Myeclipse上的配置——超详细
- Android 中英文语言切换
- Android 自定义软键盘实现
- cesium billboard 设置距离控制可见度
- x3250m6系列服务器,IBM服务器X3250 M6 E3-1230v6 8GB 4x3.5 C110 300W 无驱
- php ci post 请求,CI框架中判断post,ajax,get请求的方法
- Springcloud整理
- 怎么在电脑安装php文件夹在哪个文件夹,php进行文件上传时找不到临时文件夹怎么办,电脑自动保存的文件在哪里...
- java 注入 循环_spring依赖注入——循环依赖