aspx:
<cc1:Accordion ID="Accordion1" runat="server" AutoSize="Limit" Height="270px" CssClass="accordion"
HeaderCssClass="header" ContentCssClass="content" >
<Panes>
</Panes>
<HeaderTemplate>
<div style="background-image:url(../images/contact_large.gif)">
<span><%# DataBinder.Eval(Container.DataItem, "TypeName")%></span>
</div>
</HeaderTemplate>
<ContentTemplate>
<ul>
<li>
<a href="" target="_blank"><%# DataBinder.Eval(Container.DataItem, "SortName")%></a>
</li>
</ul>
</ContentTemplate>
</cc1:Accordion>
CS://Accordion动态显示分类(大类)
protected void AccordionGetType()
{
try
{
myConn = new SqlConnection(dns);
string sql = "select top 4 TypeName,SortName from Type,Sort where Type.TypeId = Sort.TypeId and IsShow = 1";
myConn.Open();
SqlDataAdapter ap = new SqlDataAdapter(sql,myConn);
DataSet ds = new DataSet();
ap.Fill(ds,"分类名称");
Accordion1.DataSource = new DataView(ds.Tables[0]);
Accordion1.DataBind(); }
catch (SqlException ex)
{
ex.StackTrace.ToString();
}
finally
{
myConn.Close();
}
}
如此绑定的结果是,检索四条记录的时候, <headerTemplete>可以正确显示,并且每个大类下面的 <ContentTemplate>中都可以显示 一条子类.问题是,如果为某一个大类中添加超过两个子类,那么,子类不会在该大类下的 <ContentTemplate>中显示,而是另外作为一 个 <headerTemplete>显示.画一个示意图,高人帮忙分析一下! --------------------
大类一
--------------------
小类1 --------------------
大类二
--------------------
小类 --------------------
大类三
--------------------
小类 --------------------
大类一
--------------------
小类2 (就是这种形式,若为大类一添加两个小类的话,accordion控件就会这样显示,不知是哪里的问题,请求高人协助了!)
如若有类似的例子更好,谢谢了!
<cc1:Accordion ID="Accordion1" runat="server" AutoSize="Limit" Height="270px" CssClass="accordion"
HeaderCssClass="header" ContentCssClass="content" >
<Panes>
</Panes>
<HeaderTemplate>
<div style="background-image:url(../images/contact_large.gif)">
<span><%# DataBinder.Eval(Container.DataItem, "TypeName")%></span>
</div>
</HeaderTemplate>
<ContentTemplate>
<ul>
<li>
<a href="" target="_blank"><%# DataBinder.Eval(Container.DataItem, "SortName")%></a>
</li>
</ul>
</ContentTemplate>
</cc1:Accordion>
CS://Accordion动态显示分类(大类)
protected void AccordionGetType()
{
try
{
myConn = new SqlConnection(dns);
string sql = "select top 4 TypeName,SortName from Type,Sort where Type.TypeId = Sort.TypeId and IsShow = 1";
myConn.Open();
SqlDataAdapter ap = new SqlDataAdapter(sql,myConn);
DataSet ds = new DataSet();
ap.Fill(ds,"分类名称");
Accordion1.DataSource = new DataView(ds.Tables[0]);
Accordion1.DataBind(); }
catch (SqlException ex)
{
ex.StackTrace.ToString();
}
finally
{
myConn.Close();
}
}
如此绑定的结果是,检索四条记录的时候, <headerTemplete>可以正确显示,并且每个大类下面的 <ContentTemplate>中都可以显示 一条子类.问题是,如果为某一个大类中添加超过两个子类,那么,子类不会在该大类下的 <ContentTemplate>中显示,而是另外作为一 个 <headerTemplete>显示.画一个示意图,高人帮忙分析一下! --------------------
大类一
--------------------
小类1 --------------------
大类二
--------------------
小类 --------------------
大类三
--------------------
小类 --------------------
大类一
--------------------
小类2 (就是这种形式,若为大类一添加两个小类的话,accordion控件就会这样显示,不知是哪里的问题,请求高人协助了!)
如若有类似的例子更好,谢谢了!
解决方案 »
- 关于UpdatePanel和页面跳转的问题
- 递归读取数据库生成TreeView 当子Checked=true时 父展开
- 急:asp.net网站发布后Menu控件二级菜单不显示报JS错误
- 有TreeView了,为什么没有ListView?? 郁闷啊!
- 问个简单点的HTML标记问题
- 为了做多语言版本的在ASPX上每个文字处都加了个文字调用,会不会降低速度呀
- 如何按回车键即可提交表单?
- 用datagrid显示表里面的内容,如何过滤掉恶意的<script>……</script>代码?
- 使用了模板页的内容页 里用 编辑器
- 新手关于Wizard的一个问题。
- 装了VSS2008后,为什么就装不上SQL2005了?
- 大家有没有好的asp人才网源码下载地址呢
TypeId (主键)
TypeName (大类名称)
TypeOrderNum (排序字段)
IsShow (是否为推荐) Sort表:
SortId (主键)
TypeId (外键)
SortName (小类名称)
OrderNum (排序字段)
并且把这个作为Accordion的数据源绑定肯定是
一条大类,一条小类这样子了
想办法改变你的查询结果...
-------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{ this.Accordion1.DataSource=GetList();
this.Accordion1.DataBind(); }
}
//获取类别名称组成数据源
public List<TypeSort> GetList()
{
List<TypeSort> ts = new List<TypeSort>();
SqlDataReader sdr1 = SqlHelper.ExecuteReader(CommandType.Text, "select typeId,TypeName from Type where IsShow=1 order by TypeOrderNum ");
while (sdr1.Read())
{
string strType = "";
SqlDataReader sdr2 = SqlHelper.ExecuteReader(CommandType.Text, "select sortId,sortName from sort where typeId=" + sdr1.GetInt32(0).ToString() + " order by orderNum");
while (sdr2.Read())
{
strType += sdr2.GetString(1) + "<br>";
}
if (strType.Length > 1)
strType = strType.Substring(0, strType.Length - 1);
ts.Add( new TypeSort(sdr1.GetString(1),strType) );
}
return ts;
}//大小类model类
public class TypeSort
{
private string _typeName;
private string _sortName;
public string typeName
{
get { return _typeName; }
set { this._typeName = value; }
}
public string sortName
{
get { return _sortName; }
set { this._sortName = value; }
}
public TypeSort(string _typeName, string _sortName)
{
this._typeName = _typeName;
this._sortName = _sortName;
}
}
----------------------------------------------------------------
strType += sdr2.GetString(1) + " <br>";
改成:
strType += sdr2.GetString(1) + " ";