=== DataList嵌套折叠问题 ====

SupermanZgn 2007-12-05 10:39:03
先谢谢各位啦
现在有一个DataList里嵌套了一个DataList,外层读大类,里面读小类,,大类小类都是无限级的(类似TreeView的效果,但不能用TreeView),然后点大类的标题折叠小类,只能用DataList或Repeater实现,不知道我说清楚了没有,
最好有源码,再次感谢!!!
...全文
276 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
amandag 2007-12-09
  • 打赏
  • 举报
回复
DataList嵌套一层的做过,说实话,嵌套的层数比较多的时候,用户看起来并不清楚
SupermanZgn 2007-12-09
  • 打赏
  • 举报
回复
不好意思呀,这两天没来
我的邮箱是
zhangguoen1982@163.com

谢谢~~~
SupermanZgn 2007-12-07
  • 打赏
  • 举报
回复
先谢谢SeerMi
这种方法考虑过,但不好实现,因为山东这个大类也是动态的,循环出来的的时候它的ID都是一样的,用JS没法控制其折叠,
SeerMi 2007-12-07
  • 打赏
  • 举报
回复
无限分层的话还是建议你用树

如果实在不想的话,那就在存储过程中把你的数据都处理到位,比如
山东
济南
青岛

datalist只是用来显示,至于隐藏折叠,那是js去实现的,可以这样,在山东后面用控件隐藏放置其id,然后在他的下级都有parentid,点击山东就根据这个去显示和隐藏其下级

这样,没项后面都有两个数据,就是自己的id和父级的id

不知道楼主是否认可
baijingbo 2007-12-07
  • 打赏
  • 举报
回复
学习学习
DavidNoWay 2007-12-07
  • 打赏
  • 举报
回复
gagayt 2007-12-07
  • 打赏
  • 举报
回复
放一个imagebutton在外面的datalist点击隐藏里面的小类的datalist不久行了
isun2007 2007-12-07
  • 打赏
  • 举报
回复
这颗树用递归实现了无限级,也许对楼主有参考意义!
isun2007 2007-12-07
  • 打赏
  • 举报
回复
昨天看到了楼主的帖子,今天上班没事,用DataList做了类似树的东西!至于折叠,是用js实现的!如果楼主想看看的话,把邮箱留下,我给你发过去!
nanjg 2007-12-06
  • 打赏
  • 举报
回复
点大类的标题折叠小类没明白
SupermanZgn 2007-12-06
  • 打赏
  • 举报
回复
怎么没人了啊~~55555555555555
cat_hsfz 2007-12-06
  • 打赏
  • 举报
回复
这显然应该用Menu或TreeView之类的东西,因为你是无限分层的。
neituib 2007-12-06
  • 打赏
  • 举报
回复
想换个跟好的跟适合的工作,也许可以通过内部推荐更容易实现

内推网 内部推荐,求职快线
wanabe 2007-12-06
  • 打赏
  • 举报
回复
控制下那个树达到你的效果不就行了
SupermanZgn 2007-12-06
  • 打赏
  • 举报
回复
类似这种效果
点1.Accordion时2.AutoSize折叠,以此类推
SupermanZgn 2007-12-06
  • 打赏
  • 举报
回复
ylbkz 2007-12-06
  • 打赏
  • 举报
回复
图片看不到
你是说的类似于 树 的概念吗
ylbkz 2007-12-06
  • 打赏
  • 举报
回复
错了
汗一个先
刚那个
是.CS文件
这个才是ASPX文件

<asp:datagrid id="dtgFlight" runat="server" Width="640px" GridLines="None" BorderColor="White"
CellPadding="0" BorderStyle="Ridge" BorderWidth="0px" BackColor="White" PageSize="5" AutoGenerateColumns="False">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#9471DE"></SelectedItemStyle>
<ItemStyle ForeColor="Black" BackColor="#DEDFDE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#E7E7FF" BackColor="#4A3C8C"></HeaderStyle>
<FooterStyle ForeColor="Black" BackColor="#C6C3C6"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
<TABLE id="Table35" style="BORDER-RIGHT: #e6e6e6 1px solid; BORDER-TOP: medium none; BORDER-LEFT: #e6e6e6 1px solid; COLOR: white; BORDER-BOTTOM: #e6e6e6 1px solid; BORDER-COLLAPSE: collapse"
borderColor="white" cellSpacing="0" cellPadding="0" width="100%" bgColor="white" border="1">
<TR bgColor="#cccccc" height="23">
<TD align="center" width="3%">
<DIV style="CURSOR: hand" onclick="ShowAll();">+</DIV>
</TD>
<TD width="17%">航班号
</TD>
<TD width="20%">起飞城市
</TD>
<TD width="20%">到达城市
</TD>
<TD width="20%">起飞时间
</TD>
<TD width="20%">到达时间
</TD>
</TR>
</TABLE>
</HeaderTemplate>
<ItemTemplate>
<TABLE id="Table3" style="BORDER-RIGHT: #e6e6e6 1px solid; BORDER-TOP: medium none; BORDER-LEFT: #e6e6e6 1px solid; BORDER-BOTTOM: #e6e6e6 1px solid; BORDER-COLLAPSE: collapse"
borderColor="white" cellSpacing="0" cellPadding="0" width="100%" border="1">
<TR height="24">
<TD align="center" width="3%">
<DIV style="CURSOR: hand" onclick="ShowDetail(this);">+</DIV>
</TD>
<TD width="17%">
<asp:Label id=lblFlightName runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FlightName") %>'>
</asp:Label></TD>
<TD width="20%">
<asp:Label id=lblDepartureCityName runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.DepartureCityName") %>'>
</asp:Label></TD>
<TD width="20%">
<asp:Label id=lblArrivalCityName runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ArrivalCityName") %>'>
</asp:Label></TD>
<TD width="20%">
<asp:Label id=lblDepartureTime runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.DepartureTime") %>'>
</asp:Label></TD>
<TD width="20%">
<asp:Label id=lblArrivalTime runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ArrivalTime") %>'>
</asp:Label></TD>
</TR>
<TR style="DISPLAY: none">
<TD width="3%" bgColor="white"></TD>
<TD align="center" colSpan="5">
<asp:datagrid id="dtgCabin" runat="server" Width="100%" CellPadding="1" BorderStyle="None" BorderWidth="0px"
BackColor="WhiteSmoke" PageSize="5" AutoGenerateColumns="False" CellSpacing="1">
<AlternatingItemStyle Height="18px"></AlternatingItemStyle>
<ItemStyle BackColor="White"></ItemStyle>
<HeaderStyle BackColor="Info"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="CabinId"></asp:BoundColumn>
<asp:BoundColumn DataField="CabinName" HeaderText="舱位代码">
<HeaderStyle Width="17%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="Type" HeaderText="舱位种类">
<HeaderStyle Width="20%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="RemainTickets" HeaderText="剩余票数">
<HeaderStyle Width="20%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="Price" HeaderText="价格">
<HeaderStyle Width="20%"></HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="Discount" HeaderText="折扣">
<HeaderStyle Width="20%"></HeaderStyle>
</asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:datagrid></TD>
</TR>
</TABLE>
</ItemTemplate>
<EditItemTemplate>
<FONT face="宋体"></FONT>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#C6C3C6"></PagerStyle>
</asp:datagrid>
ylbkz 2007-12-06
  • 打赏
  • 举报
回复
最近正要做的东东用到这个了
不过是DataGrid的
你看看能不能用
aspx文件
public class QueryFlight : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtBeginDate;
protected System.Web.UI.WebControls.TextBox txtEndDate;
protected System.Web.UI.WebControls.DropDownList ddlDepartureCity;
protected System.Web.UI.WebControls.ImageButton btnSearch;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator2;
protected System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
protected System.Web.UI.WebControls.CompareValidator CompareValidator1;
protected System.Web.UI.WebControls.CompareValidator CompareValidator2;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator1;
protected System.Web.UI.WebControls.RegularExpressionValidator RegularExpressionValidator2;
protected System.Web.UI.WebControls.DataGrid dtgFlight;
protected System.Web.UI.WebControls.DropDownList ddlArrivalCity;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
GetAllCity();
}
}

private void GetAllCity()
{
Citys citys = new Citys();
CityData cityData = new CityData();
try
{
cityData = citys.GetAllCity();
}
catch(Exception e)
{
Response.Write(e.Message + ",内部错误:" + e.InnerException.Message);
}

ddlDepartureCity.DataSource = cityData.City;
ddlDepartureCity.DataTextField = cityData.City.CityNameColumn.ColumnName;
ddlDepartureCity.DataValueField = cityData.City.CityIdColumn.ColumnName;
ddlDepartureCity.DataBind();

ddlArrivalCity.DataSource = cityData.City;
ddlArrivalCity.DataTextField = cityData.City.CityNameColumn.ColumnName;
ddlArrivalCity.DataValueField = cityData.City.CityIdColumn.ColumnName;
ddlArrivalCity.DataBind();
}

private void GetFlight()
{
Flights.Condition condition = new Air.Class.Flights.Condition();
condition._ArrivalCityId = Convert.ToInt32(ddlArrivalCity.SelectedValue);
condition._DepartureCityId = Convert.ToInt32(ddlDepartureCity.SelectedValue);
condition._BeginDate = Convert.ToDateTime(txtBeginDate.Text);
condition._EndDate = Convert.ToDateTime(txtEndDate.Text);

Flights flights = new Flights();
FlightData flightData = new FlightData();
try
{
flightData = flights.GetFlights(condition);
}
catch(Exception e)
{
Response.Write(e.Message + ",内部错误:" + e.InnerException.Message);
}
dtgFlight.DataSource = flightData.Flight;
dtgFlight.DataBind();
for(int i =0; i < dtgFlight.Items.Count; i ++)
{
DataGrid dtgCabin = (DataGrid)dtgFlight.Items[i].FindControl("dtgCabin");
dtgCabin.DataSource = flightData.Flight[i].GetCabinRowsByFlightCabin();
dtgCabin.DataBind();
}
}


#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.btnSearch.Click += new System.Web.UI.ImageClickEventHandler(this.btnSearch_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void btnSearch_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
GetFlight();
}


曲滨_銘龘鶽 2007-12-05
  • 打赏
  • 举报
回复
这个东西代码不少
估计没人能给你回答!

无限级别的签套话、还不如直接输出html 简单快捷。
最好画个图要不不好理解!
加载更多回复(4)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧