ASP.net 自定义服务器控件之 GridViewControl
[ToolboxData("<{0}:GridViewControl runat=server></{0}:GridViewControl>")]
public class GridViewControl : System.Web.UI.WebControls.GridView
{
/// <summary>
/// 是否数据为空时显示标题行
/// </summary>
private bool _enableEmptyContentRender = true;
/// <summary>
/// 是否数据为空时显示标题行
/// </summary>
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public bool EnableEmptyContentRender
{
set { _enableEmptyContentRender = value; }
get { return _enableEmptyContentRender; }
}
/// <summary>
/// 是否数据为空时显示标题行
/// </summary>
private string _EmptyDataCellCssClass;
/// <summary>
/// 为空时信息单元格样式类
/// </summary>
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("")]
[Localizable(true)]
public string EmptyDataCellCssClass
{
set { _EmptyDataCellCssClass = value; }
get { return _EmptyDataCellCssClass; }
}
/// <summary>
/// 为空时输出内容
/// </summary>
/// <param name="writer"></param>
protected virtual void RenderEmptyContent(HtmlTextWriter writer)
{
//Create Header Table
Table tblHeader = new Table();
//Copy All Property
tblHeader.CssClass = this.CssClass;
tblHeader.GridLines = this.GridLines;
tblHeader.BorderStyle = this.BorderStyle;
tblHeader.BorderWidth = this.BorderWidth;
tblHeader.CellPadding = this.CellPadding;
tblHeader.CellSpacing = this.CellSpacing;
tblHeader.HorizontalAlign = this.HorizontalAlign;
tblHeader.Width = this.Width;
tblHeader.CopyBaseAttributes(this);
tblHeader.Rows.Add(rowHeader);
rowHeader.CssClass = "TableHeader";
//Generate Table Header
foreach (DataControlField f in this.Columns)
{
TableCell cell = new TableCell();
cell.Text = f.HeaderText;
rowHeader.Cells.Add(cell);
}
TableRow rowBody = new TableRow();
tblHeader.Rows.Add(rowBody);
TableCell cellBody = new TableCell();
cellBody.CssClass = this._EmptyDataCellCssClass;
if (this.EmptyDataTemplate != null)
//the second row, use the template
this.EmptyDataTemplate.InstantiateIn(cellBody);
else
//the second row, use the EmptyDataText
cellBody.Text = this.EmptyDataText;
cellBody.ColumnSpan = this.Columns.Count;
rowBody.Cells.Add(cellBody);
tblHeader.RenderControl(writer);
}
{
if (_enableEmptyContentRender && (this.Rows.Count == 0 || this.Rows[0].RowType == DataControlRowType.EmptyDataRow))
RenderEmptyContent(writer);
else
base.Render(writer);
}
}
转载于:https://blog.51cto.com/qijinchao/263635
ASP.net 自定义服务器控件之 GridViewControl相关推荐
- asp.NET自定义服务器控件内部细节系列教程四
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- asp.NET自定义服务器控件内部细节系列教程五
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- asp.NET自定义服务器控件内部细节系列教程一
如大家要转载,请保留本人的版权: /* *Description:asp.NET自定义服务器控件内部细节系列教程 *Auther:崇崇-天真的好蓝 *MSN:chongchong2008@msn.co ...
- ASP.NET自定义服务器控件
本文通过创建一个最简单的服务器控件,演示开发服务器端控件的流程. 文章内容整理自MSDN的编程指南,原文地址在文章末尾的资源中. 本文创建一个简单的服务器控件,名为 RedLabel. 它的使用方式为 ...
- 演练:开发和使用自定义服务器控件
更新:2007 年 11 月 此演练演示如何创建和编译自定义 ASP.NET 服务器控件以及如何在页中使用该控件. 通过此演练,您将学会如何执行以下任务: 创建一个 ASP.NET 服务器控件. 向该 ...
- 开发和使用自定义服务器控件
ASP.NET 演练:开发和使用自定义服务器控件 此演练演示如何创建和编译自定义 ASP.NET 服务器控件以及如何在页中使用该控件. 通过此演练,您将学会如何执行以下任务: 创建一个 ASP.NET ...
- ASP.NET2.0服务器控件之类型化样式属性
实现类型化样式属性的方法 继承自Style类的类称为类型化样式.Style类可以由控件开发人员来扩展,创建一个自定义类型化样式,它重写或者添加Style类的属性.服务器控件也可以把自定义类型化样式作为 ...
- 【ASP.NET】服务器控件大演练与实例分析
asp服务器控件 简介(特点):保存视图状态,公共对象模型,简单,用户定制,创建浏览器特定HTML web服务器控件:文本控件(2个) 1) TextBox控件 <asp:TextBox ID= ...
- 一起谈.NET技术,ASP.NET2.0服务器控件之类型转换器
类型转换器是实现自定义服务器控件属性过程中比较重要的内容.本文将对类型转换器的基本概念和实现方法进行介绍. 1. 类型转换器基本概念 类型转换器是自定义服务器控件的辅助性功能实现.它主要用于执行从字符 ...
最新文章
- Debug时含有的子元素,在代码里获取不到的问题
- 关于IIS和Serv-U在同一台服务器中端口冲突问题
- fir.im Weekly - APP 性能监测优化 二三事
- 将要改变IT世界的的docker技术是什么?
- 基本机器学习面试问题 ---- Company/Industry Specific/Interest
- 牛客网【每日一题】5月8日题目精讲 codeJan与旅行
- laravel如何生成swagger接口文档
- jq fileupload 设置最大文件大小5m_如何在 Linux 服务器上设置 ulimit 和文件描述符数限制 | Linux 中国...
- 《Python游戏趣味编程》 第10章 拼图游戏
- cosmic中文翻译_cosmic是什么意思,cosmic翻译成中文,英译中-xyz翻译网
- Outlook邮箱设置签名
- API网关——zuul
- android actionBar searchview 默认展开,并且放大镜图标在编辑框内。
- ESP32-CAM视频传输至公网服务器并转发视频数据流
- 如何查找和阅读综述性的文章
- C++ Socket网络编程
- gym102028 problem E Resistors in Parallel (大数)
- 设置Excel单元格行宽列高
- Failed to connect to 127.0.0.1 port 1086: Connection refused
- Furucombo被盗1400万美元启示录:切勿过度授权