读书人

Accordion 嵌套取值 100分

发布时间: 2012-02-15 12:09:44 作者: rapoo

Accordion 嵌套取值 100分 - Web 开发 / Ajax
想用Accordion 实现菜单功能。
我这大类跟小类都想从数据库读取。
大类一
小类1
大类二
小类2
小类21
小类22
大类三
小类3
小类31
小类32

像上面的那样。
为什么我绑定了以后数据却没有显示出来。
有源码的考一份也可以


//我的代码,不过我的外面还有一层UpdatePanel

C# code
 
<asp:DataList id="DataList3" runat="server" DataSourceID="SqlDataSource1" Height="33px" Width="755px" DataKeyField="CourseId">
<ItemTemplate>
<cc1:Accordion ID="Accordion1" HeaderCssClass="accordionHeader" ContentCssClass="accordionContent" SuppressHeaderPostbacks="true" RequireOpenedPane="false" runat="server">
<Panes>
<cc1:AccordionPane ID="AccordionPane1" runat="server" >
<Header> <asp:Label id="Label7" runat="server" Text=' <%# Bind("CourseName") %>'> </asp:Label> </Header>
<Content>
<asp:DataList ID="DataList" runat="server" DataSourceID="SqlDataSource2" DataKeyField="">
<ItemTemplate>
<asp:Label id="Label6" runat="server" Text=' <%# Bind("LWContent") %>'> </asp:Label>
</ItemTemplate>
</asp:DataList>
</Content>
</cc1:AccordionPane>
</Panes>
</cc1:Accordion>
</ItemTemplate>
</asp:DataList>

<asp:SqlDataSource id="SqlDataSource1" runat="server" SelectCommand="SELECT [CourseId], [CourseName] FROM [CourseLWInfo] WHERE ([Tid] = @Tid)" ConnectionString=" <%$ ConnectionStrings:LoreMartConnectionString %>">
<SelectParameters>
<asp:SessionParameter Name="Tid" SessionField="TeacherId" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString=" <%$ ConnectionStrings:LoreMartConnectionString %>"


SelectCommand="SELECT [LWContent], [LWTime], [LWState], [RevertContent], [RevertTime] FROM [CourseLWInfo] WHERE (([LWState] <> @LWState) AND ([CourseId] = @CourseId))">
<SelectParameters>
<asp:Parameter DefaultValue="1" Name="LWState" Type="Int32" />
<asp:ControlParameter ControlID="DataList1" Name="CourseId" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>



[解决办法]
帮顶~
[解决办法]
完全不懂````
[解决办法]
看不懂. 帮你顶上去...
[解决办法]
你先在页面的后置代码设置断点 看看从数据层得到的数据
到底是不是你想要的
[解决办法]
前台
<cc1:Accordion ID="Accordion1" runat="server" HeaderCssClass="headerBg" ContentCssClass="content">
<Panes>
</Panes>
</cc1:Accordion>

后台
if (!IsPostBack)
{
string id =Session["userid"].ToString();
//string id = "CZY01";
DataSet ds = BLL.Sys_permitManager.GetLeft(id);
DataTable dt = ds.Tables[0];
DataView dv = ds.Tables[1].DefaultView;

foreach (DataRow row in dt.Rows)
{
AccordionPane ap = new AccordionPane();
Label header = new Label();
header.Text = row["title"].ToString();
ap.HeaderContainer.Controls.Add(header);
int i = Convert.ToInt32(row["id"].ToString());
dv.RowFilter = "parentid=" + i.ToString();
foreach (DataRow row1 in dv.ToTable().Rows)
{
Label conten = new Label();
conten.Text = "<a target='" + row1["target"].ToString() + "' href='" + row1["url"].ToString() + "'>" + row1["title"] + "</a><br/><br/>";
ap.ContentContainer.Controls.Add(conten);
}
Accordion1.Panes.Add(ap);
}
// Accordion1.SelectedIndex = 0;

}
我以前项目的一段例子


[解决办法]

[解决办法]
帮DING

读书人网 >Ajax

热点推荐