TemplateBuilder
http://msdn.microsoft.com/zh-cn/vstudio/system.web.ui.templatebuilder_members(VS.85).aspx
支持在生成模板及其包含的子控件时使用的页分析器。
下表列出了由 TemplateBuilder 类型公开的成员。
名称 | 说明 | |
---|---|---|
TemplateBuilder | 初始化 TemplateBuilder 类的新实例。 |
页首
名称 | 说明 | |
---|---|---|
BindingContainerType | 获取此生成器所创建控件的绑定容器的类型。(从 ControlBuilder 继承) | |
ControlType | 获取要创建的控件的 Type。(从 ControlBuilder 继承) | |
CurrentFilterResolutionService | 获取一个 IFilterResolutionService 对象,在设计器中分析和保持控件时使用该对象管理与设备筛选器相关的服务。(从 ControlBuilder 继承) | |
DeclareType | 获取代码生成将用于声明控件的类型。(从 ControlBuilder 继承) | |
HasAspCode | 获取一个值,该值指示控件是否包含任何代码块。(从 ControlBuilder 继承) | |
ID | 获取或设置要生成的控件的标识符属性。(从 ControlBuilder 继承) | |
Localize | 获取一个布尔值,该值指示由此 ControlBuilder 对象所创建的控件是否已本地化。(从 ControlBuilder 继承) | |
NamingContainerType | 获取此生成器所创建控件的命名容器的类型。(从 ControlBuilder 继承) | |
ServiceProvider | 获取此 ControlBuilder 对象的服务对象。(从 ControlBuilder 继承) | |
TagName | 获取要生成的控件的标记名称。(从 ControlBuilder 继承) | |
Text | 获取或设置模板的开始和结束标记之间的文本。 | |
ThemeResolutionService | 获取一个 IThemeResolutionService 对象,该对象用于在设计时管理控件的主题和外观。(从 ControlBuilder 继承) |
页首
名称 | 说明 | |
---|---|---|
FChildrenAsProperties | 确定该控件是否有 ChildrenAsProperties 设置为 true 的 ParseChildrenAttribute。(从 ControlBuilder 继承) | |
FIsNonParserAccessor | 确定控件是否实现 IParserAccessor 接口。(从 ControlBuilder 继承) | |
InDesigner | 返回 ControlBuilder 是否正在设计器中运行。(从 ControlBuilder 继承) | |
InPageTheme | 获取一个布尔值,该值指示此 ControlBuilder 对象是否用于生成页主题。(从 ControlBuilder 继承) | |
Parser | 获取负责分析控件的 TemplateParser。(从 ControlBuilder 继承) |
// (c) Copyright Microsoft Corporation.
// This source is subject to the Microsoft Permissive License.
// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
// All other rights reserved.
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Text;
using System.Web.UI.WebControls;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
namespace AjaxControlToolkit
{
/// <summary>
/// Simple read-only designer for the Accordion control
/// </summary>
[SuppressMessage("Microsoft.Security", "CA2117:AptcaTypesShouldOnlyExtendAptcaBaseTypes", Justification = "Security handled by base class")]
public class AccordionDesigner : ControlDesigner
{
/// <summary>
/// Reference to the Accordion control we're designing
/// </summary>
private Accordion _accordion;
/// <summary>
/// Initializes a new instances of the AccordionDesigner class
/// </summary>
[SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Justification = "Security handled by base class")]
public AccordionDesigner()
{
}
/// <summary>
/// Initialize to make sure we're attached to an accordion control
/// </summary>
/// <param name="component">Component</param>
[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Justification = "Assembly is not localized")]
[SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Justification = "Security handled by base class")]
public override void Initialize(IComponent component)
{
_accordion = component as Accordion;
if (_accordion == null)
throw new ArgumentException("Component must be an Accordion control", "component");
base.Initialize(component);
}
/// <summary>
/// Get the HTML for the Accordion
/// </summary>
/// <returns>HTML design time representation</returns>
[SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "controls", Justification = "See code comment below")]
[SuppressMessage("Microsoft.Security", "CA2116:AptcaMethodsShouldOnlyCallAptcaMethods", Justification = "Security handled by base class")]
public override string GetDesignTimeHtml()
{
// Ensure the controls have been created
ControlCollection controls = _accordion.Controls;
// Get the base html for the accordion's div
// so that any accordion styles will be applied
StringBuilder html = new StringBuilder();
html.Append(base.GetDesignTimeHtml());
// Remove the closing div tag so we can insert the HTML
// for all of the panes
html.Remove(html.Length - 6, 6);
// Add the HTMl for each pane
foreach (AccordionPane pane in _accordion.Panes)
{
html.Append("<span>");
string headerCSS = !string.IsNullOrEmpty(pane.HeaderCssClass) ? pane.HeaderCssClass : _accordion.HeaderCssClass;
html.AppendFormat("<div class=\"{0}\">", headerCSS);
TemplateBuilder builder = pane.Header as TemplateBuilder;
if (builder != null)
html.Append(builder.Text);
html.Append("</div>");
string contentCSS = !string.IsNullOrEmpty(pane.ContentCssClass) ? pane.ContentCssClass : _accordion.ContentCssClass;
html.AppendFormat("<div class=\"{0}\">", contentCSS);
builder = pane.Content as TemplateBuilder;
if (builder != null)
html.Append(builder.Text);
html.Append("</div>");
html.Append("</span>");
}
html.Append("</div>");
return html.ToString();
}
}
}
TemplateBuilder相关推荐
- android 论坛末班,大幅提高Android开发效率之TemplateBuilder
原标题:大幅提高Android开发效率之TemplateBuilder 安卓巴士全球开发者论坛[北京站] 安卓巴士全球开发者论坛邀请了在Android开发领域拥有多年经验的老司机,与你相约北京,带上你 ...
- 用ajax控件作的高级搜索
最近在学习ajax控件,感觉很好的,第一次使用,做的有点乱.把原代码发来看看! 前台代码: <asp:ScriptManager ID="ScriptManager1" ru ...
- Net平台下的分布式缓存设计
缓存真是个好东西,在大型的系统中可以有效地提升系统的速度,此乃废话就不多说了,在.Net 平台下面我把缓存从功用大致分为两类,数据对象缓存和页面输出缓存.对于数据缓存来讲是由System.Web.Ca ...
- Discuz!NT 模板机制分析(转)
作为产品中的一大特色,模板机制一经推出,就引来了大家特别是站长们的关注.但它所饱受的风风 雨雨也成了那时不少人关注的话题.而今天本人将结合在产品组中的开发经历,介绍一下模板机制在设计 使用时的一些体会 ...
- 在discuzNT中加入Adsense广告(只在第一楼显示)
前段时间发布了一篇关于在帖子中adsense插入广告文章http://nt.discuz.net/showtopic-22082.html 但是会在所有的帖子中都插入广告,这样就违反了google中所 ...
- java的jsp要下载吗_jsp、java下载附件
1 传入此jsp中的参数均已URLDencoder过.2 3 4 5 6 7 boolean isError = false;8 String errorMsg = "";9 re ...
- 剥开比原看代码15:比原是如何转帐的
作者:freewind 比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... ...
- Bytom的链式交易和花费未确认的交易
当我们基于比原做应用的时候,在构建交易过程中会遇到以下两种情况.多个地址向一个地址转账,还有一种就是从一个地址分批次向多个地址转账.那我们今天就来介绍一下这两种交易构建的具体流程,以及贴出具体实现的代 ...
- EBS-BI Publisher(RTF报表)语法代码(转载)
Rtf模板开发例如背景,纹理分栏等等功能都能用word工具实现不再具体总结大家可以参考word教程..... 一.组 定义一个组的目的是告诉XMLPublisher对重复的数据行进行循环显示,也就 ...
最新文章
- python列表浅复制_Python列表的深复制和浅复制示例详解
- 湖湘杯 | Misc Wp
- android注册界面高级,Android用户注册界面简单设计
- python安装rarfile模块_python windows下安装pip及rarfile
- python爬虫之协程理解爬取照片的简单版
- php图片大小怎么改,如何批量修改图片大小/尺寸
- sql server 小技巧(8) visual studio 2013里使用Sql server compact 4.0及发布问题处理
- ngrok 代理访问
- 网吧用服务器做虚拟化,刀片、无盘、集群、虚拟化,给你一个选择的理由(上)...
- NSOperation
- B46 - STM32太阳能充电智能心率监测骑行仪
- 记录nginx获取的真实ip多了Â 的问题
- 概率密度求解定理_从贝叶斯定理到概率分布:综述概率论基本定义
- PHP小马免杀的浅谈[过最新D盾]
- oracle起监听命令,lsnrctl oracle 监听器 命令行 操作命令 lsnrctl services
- 雪花算法:分布式唯一 ID 生成利器
- Android调用系统原生分享组件
- java编写自定义异常类,统一异常处理
- 不同点处泰勒展开的区别和意义
- 笨重POS机遇到便捷APP谁更有优势?
热门文章
- 设计模式之C#实现--FactoryMethod
- ASP.Net中自定义Http处理及应用之HttpModule篇
- posix_memalign
- SSHDroid及sshpass简介
- AES(Advanced Encryption Standard) Intrinsics各函数介绍
- 【FFmpeg】ffmpeg命令详解(一)
- 荣耀预装linux安装包,关于华为机子没有预装应用商店讨论
- tomcat端口号被占用怎么解决_电脑C盘空间不够用怎么办?Win7解决C盘占用空间大的3个方法!...
- html 语言 gif 动画,动效篇(1)--从简单CSS3动画片段代码,到生成gif动图~
- 自定义报错返回_Keras编写自定义层--以GroupNormalization为例