.Text中的Advanced Panel学习笔记
来源:互联网 发布:软件测试工程师 编辑:程序博客网 时间:2024/05/18 01:49
.Text中的用户文章管理界面是使用Advanced Panel的主要界面。Advanced Panel与普通WebPanel相比,多提供一个Header栏,并且可以不使用任何代码实现折叠[Collapsing]功能,这是该控件最有特色的地方。
控件常用属性
1. Collapsible属性
该属性为bool型,如果为true,该控件会在右侧显示一个折叠按钮,用于显示或隐藏Panel所包含的内容。否则不显示按钮,该控件变为不可折叠的panel。
2. Collapsed属性
该属性为bool型,默认值为false,初始化时会显示panel容器中的所有内容;如果为true,初始化时,panel容器中的内容不会显示出来。如果为true,显示效果如下:
[图1]
图中,只能看到Panel的Header,但看不到Panel具体内容,只有点击右侧的折叠切换按钮才可以看到。
3. LinkBeforeHeader属性
该属性为bool型,默认值为false。如果为false,右面的折叠按钮会显示在Header的右下方,效果如图2
[图2]
如果为true,则像图1一样显示折叠按钮
4. HeaderText属性
该属性为string型,用于设置Header标题的内容,例如图2中的HeaderText的值为Edit Post
5. LinkImageCollapsed属性
该属性为string型,用于设置折叠按钮处于“折叠”状态的图片路径。
6. LinkImage属性
该属性为string型,用于设置折叠按钮处于“展开”状态的图片路径。
7. BodyCssClass属性
该属性为string型,用于设置内容显示区的样式。注意,由于内容显示区的实际上是一个div层,设置的样式要符合
color: #333333;
border-bottom: 1px solid #AAAAAA;
margin-bottom: 8px;
padding: 4px 12px;
background: #f5f5f5;
}
当然你也可以设置一些其他属性如border-top[上边框], border-left [左边框], border-right[右边框]等。
8. DisplayHeader属性
该属性为bool型,用于设置是否显示Header栏
9. HeaderCssClass属性
该属性为string型,用于设置Header的样式。.Text中,HeaderCssClass="CollapsibleTitle",设置如下:
font-size: 105%;
background: #E5E5E5;
border-top: 1px solid #AAAAAA;
border-bottom: 1px dashed #AAAAAA;
font-weight: bold;
color: #333333;
width: auto;
padding: 2px 12px;
margin: 12px 0px 0px 0px;
clear: left;
}
其中我们可以看到border-top: solid,即上边框为实线,border-bottom: dashed,即下边框为虚线。
控件技术分析
1. Panel原理
Panel本身其实就是一个div层,不管是VS自带的WebPanel还是Advanced Panel都是如此。
2. 折叠效果实现
折叠按钮是一个关键,在最后生成的html代码中我们可以看到这样的代码:
<img id="Edit_LinkImage" src="image/toggle_gray_down.gif" alt="" border="0" />
a>
超链接标签中onclick被重载,一旦按钮按下,调用ToggleVisible()函数。 让我们来看看ToggleVisible函数的实现:
{
if (document.getElementById){
target = document.getElementById(targetID);
if (target.style.display == "none") {
target.style.display = "";
} else {
target.style.display = "none";
}
if (linkImageCollapsed != "") {
image = document.getElementById(imageID);
if (target.style.display == "none") {
image.src = linkImageCollapsed;
} else {
image.src = linkImage;
}
}
}
}
其中,参数targetID指定内容显示区的id,即div层的id,.Text中为Edit_Contents。参数imageID指定显示出来的折叠按钮的图片id。
该函数通过javascript中的getElementById获得特定html元素的指针,从而控制相应的html元素。至于显示和隐藏内容是通过修改html元素的style.display属性实现的,当style.display="none"时,则不显示,如果style.display="",则显示。
其实,在本控件中,ToggleVisible是动态装载的,该函数放在uicontrols.js文件中,通过重载Panel控件的OnPreRender事件可以完成javascript的动态加载,具体方法可以见《ASP.NET服务器控件与组件开发》。装载代码如下:
{
if (Collapsible){
Page.RegisterClientScriptBlock(CLIENT_SCRIPT_KEY,
Utilities.GetClientScriptInclude(CLIENT_SCRIPT_FILE));
}
base.OnPreRender(e);
}
其中,CLIENT_SCRIPT_KEY和CLIENT_SCRIPT_FILE为控件内部定义的常量。
3. Collapsed属性的实现
Collapsed属性如果为true,则一开始就不显示内容区,该工作是通过重载Panel控件的Render方法实现的,代码如下:
{
_contents.Style.Add("display", "none");
_image.ImageUrl = LinkImageCollapsed;
}
其中的_contents.Style.Add()为内容显示层增加了style.display="none",这样就可以在初始化时隐藏内容区。
- .Text中的Advanced Panel学习笔记
- .Text中的Advanced Panel学习笔记
- 一次性清空 panel 中的text信息
- Ext学习笔记4-Panel
- jqeasyui学习笔记-panel面板
- ExtJS学习笔记(一) Panel
- 《Advanced Windows Debugging》学习笔记
- extJs 2.0学习笔记-------Ext.Panel
- java swing 学习笔记一(画板Panel )
- Extjs学习笔记----------Panel的使用
- Java学习笔记(AWT 之 Panel)
- sencha touch2学习笔记(四)---panel容器
- ExtJS学习笔记之三------- Panel
- extjs5学习笔记之grid panel
- AWT学习笔记一Frame和Panel
- Sublime Text学习笔记
- Advanced Bash-Scripting Guide 学习笔记一
- Stream Advanced Queue--学习笔记一
- CLR一书译者(PART III和Part V)对Renart勘误的回应
- 全部翻译作品 (及时更新)
- Be Flying工作室翻译的重点、重量级图书
- 论译者翻译思想的解放
- 技术译者必读——技术图书翻译方法指南
- .Text中的Advanced Panel学习笔记
- 所有技术译者必读——技术图书译文校对方法指南
- 用铁轨理论解读SOA
- 从天下无贼看SOA全球化
- 用SOA打造企业仪表盘
- 商业模式重在简单和可操作性
- schmap widget
- 中国的软件人员为什么急功近利?
- 如何在Oracle中查询排序后的第一条记录