body { font-family : Verdana; font-size : 10pt; }AccordinDataBinding.aspx
.container { width : 300px; }
.header
{
height : 28px; line-height : 28px; color : white;
background-color: #2e4d7b; border-bottom: solid 1px white;
width:100%;}
.header span { float : left; margin-left : 10px;}
.header a { color:white; float:right; margin-right : 10px; }
<div class="container">AccordinDataBinding.aspx.cs
<ajaxToolkit:Accordion ID="MyAccordion" runat="server" SelectedIndex="0"
HeaderCssClass="header"
FadeTransitions="false" FramesPerSecond="40"
TransitionDuration="250" AutoSize="None">
<HeaderTemplate>
<span>
<%# this.GetColumnValue(Container.DataItem, "Title")%>
</span>
<a href="javascript:;" onclick="">toggle</a>
</HeaderTemplate>
<ContentTemplate>
<%# this.GetColumnValue(Container.DataItem, "Description") %>
</ContentTemplate>
</ajaxToolkit:Accordion>
</div>
public partial class AccordionDataBinding : System.Web.UI.Page
{
private static DataTable dataTable = null;
static AccordionDataBinding()
{
dataTable = new DataTable();
dataTable.Columns.Add("Title", typeof(string));
dataTable.Columns.Add("Description", typeof(string));
dataTable.Rows.Add("Accordion", "...");
dataTable.Rows.Add("Control or Extender", "...");
dataTable.Rows.Add("What is ASP.NET AJAX?", "...");
}
protected void Page_Load(object sender, EventArgs e)
{
this.MyAccordion.DataSource = dataTable.Rows;
this.MyAccordion.DataBind();
}
protected string GetColumnValue(object row, string columnName)
{
return (row as DataRow)[columnName].ToString();
}
}
<ajaxToolkit:Accordion ID="MyAccordion" runat="server"
HeaderCssClass="HeaderCssClass"
ContentCssClass="ContentCssClass">
<HeaderTemplate>...</HeaderTemplate>
<ContentTemplate>...</ContentTemplate>
</ajaxToolkit:Accordion>
<div id="MyAccordion">
<span>
<!-- 点击下面这个div会产生折叠的效果 -->
<div>
<div class="HeaderCssClass">
... <!-- Header内容 -->
</div>
</div>
<div>
<div class="ContentCssClass">
... <!-- Content内容 -->
</div>
</div>
</span>
<span>
...
</span>
...
</div>
<ajaxToolkit:Accordion ID="MyAccordion" runat="server" SelectedIndex="0"
FadeTransitions="false" FramesPerSecond="40"
TransitionDuration="250" AutoSize="None">
<HeaderTemplate>
<div class="header" onclick="cancelToggle(event)">
<span>
<%# this.GetColumnValue(Container.DataItem, "Title")%>
</span>
<a href="javascript:;" onclick="toggle(this);">toggle</a>
</div>
</HeaderTemplate>
<ContentTemplate>
<%# this.GetColumnValue(Container.DataItem, "Description") %>
</ContentTemplate>
</ajaxToolkit:Accordion>
function cancelToggle(e)
{
if (e.stopPropagation)
{
// FireFox
e.stopPropagation();
}
else
{
// IE
e.cancelBubble = true;
}
}
function toggle(ele)
{
var header = ele.parentNode.parentNode.parentNode;
if (header.click)
{
// IE
header.click();
}
else
{
// FireFox
var e = document.createEvent("MouseEvents");
e.initEvent("click", true, true);
header.dispatchEvent(e);
}
}
本文出自 “赵��” 博客,转载请与作者联系!