动态为GridView控件创建列
平常时一般不会去动态创建Gridview列(column),但是程序有时就会需要这样去做。下面这个例子,是在Insus.NET开发的一个专案使用,现把它抽取分享出来,如果你有需求,可以参详。如下图:
这个动态添加的列(上图红色方框),会放置一个图片铵钮ImageButton。可以写一个列类别,实作在命名空间System.Web.UI下的ITemplate接口,在runtime时new 这个列类别即可。下面是DetailColumn类别,重点部分已经有注释:
![](/assets/blank.gif)
![](/assets/blank.gif)
using System.Collections.Generic;
using System.Linq;
using System.Web;
//引用下面两个命名空间
using System.Web.UI;
using System.Web.UI.WebControls;
/// <summary>
/// Summary description for DetailColumn
/// </summary>
namespace Insus.NET
{
public class DetailColumn : ITemplate //实作ITemplate接口
{
//宣告两个变量,一个为RowType,另一个是列Header名。
private DataControlRowType _dataControlRowType;
private string _columnName;
public DetailColumn()
{
//
// TODO: Add constructor logic here
//
}
//在页面调用时,将使用下面这个构造函数
public DetailColumn(DataControlRowType dataControlRowType, string columnName)
{
_dataControlRowType = dataControlRowType;
_columnName = columnName;
}
#region ITemplate Members
public void InstantiateIn(Control container)
{
switch (_dataControlRowType)
{
case DataControlRowType.Header:
Literal LiteralHeader = new Literal();
LiteralHeader.Text = _columnName; //设置Header的文本。
container.Controls.Add(LiteralHeader);
break;
case DataControlRowType.DataRow:
ImageButton imageButton = new ImageButton();
imageButton.ID = "ImageButtonDetails"; //设定ImageButton的ID值。
imageButton.ImageAlign = ImageAlign.AbsMiddle; //设置Button的对齐方式
imageButton.CausesValidation = false;
imageButton.ImageUrl = "~/details.gif"; //图片铵钮ImageUrl
container.Controls.Add(imageButton);
break;
default:
break;
}
}
#endregion
}
}
在.aspx.cs页面调用这个列类别:
![](/assets/blank.gif)
![](/assets/blank.gif)
{
Data_Binding();
}
private void Data_Binding()
{
this.GridViewMember.DataSource = objMember.GetMember();
//new TemplateField实例
TemplateField templateField = new TemplateField();
//创建HeaderTemplate
templateField.HeaderTemplate = new DetailColumn(DataControlRowType.Header, "详细");
//创建ItemTemplate
templateField.ItemTemplate = new DetailColumn(DataControlRowType.DataRow,string.Empty);
GridViewMember.Columns.Add(templateField);
GridViewMember.DataBind();
}
从这个实例开始,将会陆续把Demo的代码打包上传,因为太多网友联系Insus.NET索取Demo代码了。
本实例程序包,可以从下面地址下载,运行在.net 4.0环境,数据库是MSSQL Server 2008 R2 64bit,另外还有一个Dll组件,也可以下载放入Bin目录中,另外程序包中数据库是一个.bak文件,你做一个恢复即可。
http://download.cnblogs.com/insus/ASPDOTNET/DynamicallyAddColumnInGridView.rar
http://www.cnblogs.com/insus/articles/1654653.html
动态为GridView控件创建列相关推荐
- asp.net GridView控件的列属性
BoundField 默认的数据绑定类型,通常用于显示普通文本 CheckBoxField 显示布尔类型的数据.绑定数据为TRUE时,复选框数据绑定列为选中状态:绑定数据为FALSE时,则显示未选中状 ...
- 动态合并Repeater控件数据列
前天Insus.NET实现<动态合并GridView数据行DataRow的列>.今天再玩玩Repeater控件,功能也是动态合并某列栏位. Repeater控件跟GridView控件一样集 ...
- ASP.NET GridView控件在列上格式化时间
症状:在GridView绑定日期格式的时候,数据库中的日期为2008-07-04,而GridView显示的是2007-07-04 000000.. 解决办法:想把这后面这多余的零去掉的话在绑定时间的那 ...
- 动态绑数据(GridView控件Header和ItemTemplate)
想了解此篇文章,建议先预习一下<动态变更GridView控件列名>http://www.cnblogs.com/insus/p/3232057.html,因为多少有些关联.不管怎样,它能够 ...
- Highlight(高亮)Gridview控件列
一般情况之下,我们很轻易实现Gridview控件的行高亮,而想实现GridView控件的列高亮,是有点难度的.本博文也轻易教你实现GridView控件的列高亮. 在实现之前,我得准备数据,并绑定于网页 ...
- GridView控件
GridView简介: GridView控件以表格的形式显示数据源的值,没列表示一个字段,每行表示一条记录. 该控件提供了内置排序功能.内置更新(修改)和删除.分页.行选择功能.以编程方式访问Grid ...
- GridView 控件
如何响应GridView 控件中的按钮事件 (转) 2009-06-18 21:47 在单击 GridView 控件中的按钮时,将引发 RowCommand 事件.GridView 控件具有内置功能, ...
- 在 GridView 控件中添加一列复选框51
简介 在前面的教程中 , 我们学习了如何为 GridView 控件添加一列 单选 按钮来选择一个特定的记录.当用户被限制最多只能从网格中选中一项时,一列单选按钮是一个非常恰当的用户界面.然而,有时我们 ...
- GridView控件RowDataBound事件中获取列字段值的几种途径
前台: <asp:TemplateField HeaderText="充值总额|账号余额"><ItemTemplate><asp:Label ID=& ...
最新文章
- Python3 的内置函数和闭包
- Sobel边缘检测算法verilog实现及仿真
- sqlserver安装显示句柄无效_Sqlserver 2016 R Service环境安装的各种错误(坑)解决办法...
- 可信云认证累计达20项,腾讯云技术创新能力再获专业认可
- 静电场与电流场_2021高考复习:静电场考点突破微专题11 带电粒子在交变电场中的运动 9.26...
- 那个20多万“不可描述”照片的数据集,有人用它做了鉴黄模型 | Demo
- 【UE4】UE4GamePlay架构
- Android保存音频文件
- 万能pdf阅读器卸载
- win10怎么更新Android驱动,w10怎么更新驱动程序_教你win10更新驱动程序的方法步骤...
- Pspice仿真实验B-2
- mysql sock golang_golang socket连接复用 - smux
- 《2022爱分析·银行数字化厂商全景报告》发布,菊风连续入选「视频银行」优质代表厂商
- 弹幕游戏:Ryan 最近迷上了弹幕游戏。所谓弹幕游戏,指的是玩家操控一位角色对来袭的大量敌人进行攻击,并在过程中升级、强化自我的能力,最终打败 Boss 的一类游戏...
- RecSys'22|CARCA:交叉注意力感知上下文和属性进行推荐
- java骑车与走路_骑行/步行路线规划
- 探讨位操作、算术右移、逻辑右移
- 1N系列常用整流二极管的主要参数
- 【生活】罗曼·罗兰语录
- 菜鸟如何用Python将交互数据生成邻接矩阵(超详细)