实现了QQ、Msn好友分类的折叠效果,就像包含了多个CollapsiblePanels 。
常用属性:
SelectedIndex : 该控件初次加载时展开的AccordionPane面板的索引值 。
HeaderCssClass : 该Accordion中包含的所有AccordionPane面板的标题区域所应用的CSS Class 。
ContentCssClass : 该Accordion中包含的所有AccordionPane面板的内容区域所应用的CSS Class 。
AutoSize : 在展开具有不同高度的AccordionPane面板时,该Accordion的总高度的变化方式。
可选如下3个值:
None:该Accordion将随着当前展开的AccordionPane面板的高度自由伸长/缩短。
Limit:该Accordion将随着当前展开的AccordionPane面板的高度自由伸长/缩短,不过最高不
会超过Accordion的Height属性设定值。若是其内容高度超过了Height属性设定值,则
将自动显示滚动条。
Fill:该Accordion的高度将固定为Height属性的设定值,不随当前展开的不同高度
的AccordionPane面板而变化。若是某个AccordionPane的内容高度超过了Height属性设定
值,则将自动显示滚动条。
FadeTransitions : 若该属性值设置为true,则在切换当前展开的AccordionPane面板时,将带有淡入淡出效果
TransitionDuration : 展开/折叠一个AccordionPane面板的过程所花费的时间,单位为毫秒。
FramesPerSecond : 播放展开/折叠AccordionPane面板动画的每秒钟帧数 。
DataSourceID : 页面中某个DataSource控件的ID,用于通过数据绑定自动生成AccordionPane面板 。
<Panes> : 该标签内将包含一系列的<ajaxToolkit:AccordionPane>标签,即Accordion- Pane的声明,用来表
示 Accordion中包含的面板 。
<HeaderTemplate> : 在使用数据绑定功能自动生成AccordionPane面板时,该标签内将定义每个面板的标题
区域中的内容模板 。
<ContentTemplate> : 在使用数据绑定功能自动生成AccordionPane面板时,该标签内将定义每个面板的正文
。区域中的内容模板
实例代码:
<body onload="focus();"><a href="http://abcdwxc.cnblogs.com/" target="_blank">Acoordion的实例-------王晓成的博客
</a>
<div class="description">
<ul>
<li>使用可折叠控件(Accordion)并搭配 5 个可折叠面板(AccordionPane)控件,<strong>一次仅展开一个可折叠面板</strong>。 </li>
<li>当页面第一次被加载时,会自动展开<strong>第三个</strong>可折叠面板。 </li>
</ul>
</div>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div align="center">
<ajaxToolkit:Accordion ID="Accordion1"
runat="server"
width="450px"
ContentCssClass="accordionContentDef"
HeaderCssClass="accordionHeaderDef"
RequireOpenedPane="false"
SelectedIndex="2">
<Panes>
<ajaxToolkit:AccordionPane ID="AccordionPane1"
runat="server">
<Header>
<a href="" onclick="return false;">
Visual Basic 2005 程序开发与界面设计秘诀
</a>
</Header>
<Content>
完全的范例与实作导向,颠覆传统只是纸上谈兵、高谈阔论的写法。通过众多程序范例,
务实、深度且精确地切入 Visual Basic 2005 最重要且实用的程序开发与界面设计议题。
经过本书的洗礼,相信您能扎实掌握 Visual Basic 2005 的内涵与开发精髓,迅速站上
.NET Framework此一巨人的肩膀,让您的开发生命走得更长、更稳、更辉煌。
</Content>
</ajaxToolkit:AccordionPane>
<ajaxToolkit:AccordionPane ID="AccordionPane2"
runat="server">
<Header>
<a href="" onclick="return false;">
Visual Basic 2005 文件 IO 与数据存取秘诀
</a>
</Header>
<Content>
学习不在多言,不仅实作,更要实战。本书秉持具体力行的思维,彻底提升读者功力为职志,
贡献了 260 个以上的程序范例,针对文件输入输出与数据存取议题,深度剖析。
</Content>
</ajaxToolkit:AccordionPane>
<ajaxToolkit:AccordionPane ID="AccordionPane3"
runat="server"
ContentCssClass="accordionContentCS"
HeaderCssClass="accordionHeaderCS">
<Header>
<a href="" onclick="return false;">
Visual C# 2005 程序开发与界面设计秘诀
</a>
</Header>
<Content>
通过众多程序范例,务实、深度且精确地切入Visual C# 2005 最重要且实用的程序开发与接口设计议题。
经过本书的洗礼,相信您能扎实掌握 Visual C# 2005 的内涵与开发精髓,迅速站上
.NET Framework此一巨人的肩膀,让您的开发生命走得更长、更稳、更辉煌。
</Content>
</ajaxToolkit:AccordionPane>
<ajaxToolkit:AccordionPane ID="AccordionPane4"
runat="server"
ContentCssClass="accordionContentCS"
HeaderCssClass="accordionHeaderCS">
<Header>
<a href="" onclick="return false;">
Visual C# 2005 文件 IO 与数据存取秘诀
</a>
</Header>
<Content>
本书秉持具体力行的思维,彻底提升读者功力为职志,贡献了 260 个以上的程序范例,
针对文件输入输出与数据存取议题,深度剖析。希望透过无私的心得分享,与大家一起再创颠峰,
将开发生命提升至一个全新的境界。
</Content>
</ajaxToolkit:AccordionPane>
<ajaxToolkit:AccordionPane ID="AccordionPane5"
runat="server"
ContentCssClass="accordionContentSQL"
HeaderCssClass="accordionHeaderSQL">
<Header>
<a href="" onclick="return false;">
Microsoft SQL Server 2005 完全实战
</a>
</Header>
<Content>
使用了近 600 个指令文件(.sql)与数个Windows应用程序及类库项目,详实且深入探讨
SQL Server 2005 的“数据库创建”、“Transact-SQL程序设计”与 XML 等三大核心领域,
打下不可动摇的根基。
</Content>
</ajaxToolkit:AccordionPane>
</Panes>
</ajaxToolkit:Accordion>
</div>
<p />
<div align="center">
<table>
<tr align="left">
<td>
是否使用<strong>“淡出效果”</strong>:
<input id="FadeMode" type="checkbox" onclick="toggleFade();" value="false" />
</td>
</tr>
<tr align="left">
<td>
设定<strong>「AutoSize」</strong>模式:
<select id="AutoSizeMode" onchange="changeAutoSizeMode();">
<option value="0" selected>None</option>
<option value="1">Fill</option>
<option value="2">Limit</option>
</select>
</td>
</tr>
</table>
</div>
</form>
</body>
样式如下:
/* 预设的标头样式表 */
.accordionHeaderDef
{
border: 2px solid #0B0109;
background-color: #8B7149;
font-weight: bold;
padding: 5px;
margin-top: 5px;
cursor: pointer;
text-align: center;
}
/* 预设的内容样式表 */
.accordionContentDef
{
border: thick ridge #FFD8D8;
background-color: #A7D9AF;
border-top: none;
padding: 5px;
padding-top: 10px;
text-align: left;
}
/* 预设的标头之超级链接样式表 */
.accordionHeaderDef a
{
color: #FFFFCC;
text-decoration: none;
}
/* 当鼠标移过预设的标头之超级链接样式表 */
.accordionHeaderDef a:hover
{
background-color: LightSlateGray;
color: Yellow;
text-decoration: underline overline;
}
/* C# 类的标头样式表 */
.accordionHeaderCS
{
border: 2px solid #040D0D;
background-color: #B4CDCD;
font-weight: bold;
padding: 5px;
margin-top: 5px;
cursor: pointer;
text-align: center;
}
/* C# 类的内容样式表 */
.accordionContentCS
{
border: thick ridge #2FFBFB;
background-color: #F0D8DB;
border-top: none;
padding: 5px;
padding-top: 10px;
text-align: left;
}
/* C# 类的标头之超级链接样式表 */
.accordionHeaderCS a
{
color: #0000FF;
text-decoration: none;
}
/* 当鼠标移过 C# 类的标头之超级链接样式表 */
.accordionHeaderCS a:hover
{
background-color: LightSlateGray;
color: Yellow;
text-decoration: underline overline;
}
/* SQL 类的标头样式表 */
.accordionHeaderSQL
{
border: 2px solid #0C0C0A;
background-color: #9C8C5A;
font-weight: bold;
padding: 5px;
margin-top: 5px;
cursor: pointer;
text-align: center;
}
/* SQL 类的内容样式表 */
.accordionContentSQL
{
border: thick ridge #FFD8D8;
background-color: #E7E3C9;
border-top: none;
color: #000000;
padding: 5px;
padding-top: 10px;
text-align: left;
}
/* SQL 类的标头之超级链接样式表 */
.accordionHeaderSQL a
{
color: #FFFFFF;
text-decoration: none;
}
/* 当鼠标移过 SQL 类的标头之超级链接样式表 */
.accordionHeaderSQL a:hover
{
background-color: LightSlateGray;
color: Yellow;
text-decoration: underline overline;
}
</style>
脚本代码如下:
// 设定「淡出效果」属性。
function toggleFade()
{
// 找出 ID 属性值为 Accordion1_AccordionExtender 的手风琴折之行为。
var behavior = $find('Accordion1_AccordionExtender');
if (behavior)
{
// 设定是否使用淡出效果。
behavior.set_FadeTransitions(!behavior.get_FadeTransitions());
// 显示淡出效果所花费的时间要多久(单位:毫秒)。
// 若不指定时,这个时间会是 250 毫秒。
behavior.set_TransitionDuration(1000);
// 于淡出效果的转换中,每秒要使用多少个画格(Frame)。
// 若不指定时,会使用 40 个画格。
behavior.set_FramesPerSecond(100);
}
}
// 设定自动调整大小(AutoSize)的模式。
function changeAutoSizeMode()
{
// 找出 ID 属性值为 Accordion1_AccordionExtender 的手风琴折之行为。
var behavior = $find('Accordion1_AccordionExtender');
// 找出 ID 属性值为 AutoSizeMode 的项目。
var ctrl = $get('AutoSizeMode');
if (behavior)
{
// 定义 AutoSize 变量。
var size;
// 取得所指定的 AutoSize 模式。
switch (ctrl.selectedIndex)
{
// None 模式。
case 0:
behavior.get_element().style.height = '400px';
size = AjaxControlToolkit.AutoSize.None;
break;
// Fill 模式。
case 1:
behavior.get_element().style.height = '400px';
size = AjaxControlToolkit.AutoSize.Fill;
break;
// Limit 模式。
case 2:
behavior.get_element().style.height = '400px';
size = AjaxControlToolkit.AutoSize.Limit;
break;
}
// 设定 Accordion1_AccordionExtender 的手风琴折之 AutoSize 行为。
behavior.set_AutoSize(size);
}
}
</script>
运行结果如下: