有两张表,一张表是分类表包含 id name parentsid 另外一张表是产品表,里面有产品表id,分类表id以及其他对应的各种产品信息。然后我要实现的效果是,点击大的分类,通过URL传输过来id。
然后怎么利用这个parentid实现如下显示:
1、label:这个parentid对应的大分类名称
2、label:这个parentid对应的小分类名称
3、datalist:这个parentid对应的小分类的下的所有产品
。
。2,3重复
。
直到这个大分类下所有的小分类及其所有产品显示完毕为止。。第1点没问题,重点是在第2,第3
我百度问了一下,说什么循环。。 新手,没看明白
我自己想了一下,2,3是不是可以用datalist嵌套datalist来做,可是第二个datalist不会搞。。
求高手们帮帮忙,谢谢了~~~
然后怎么利用这个parentid实现如下显示:
1、label:这个parentid对应的大分类名称
2、label:这个parentid对应的小分类名称
3、datalist:这个parentid对应的小分类的下的所有产品
。
。2,3重复
。
直到这个大分类下所有的小分类及其所有产品显示完毕为止。。第1点没问题,重点是在第2,第3
我百度问了一下,说什么循环。。 新手,没看明白
我自己想了一下,2,3是不是可以用datalist嵌套datalist来做,可是第二个datalist不会搞。。
求高手们帮帮忙,谢谢了~~~
解决方案 »
- asp.net点击一个input按钮·弹出一个页面·
- ASP.NET前辈请教一个问题
- treeivew用ajax传值
- 关于Login控件中的CheckBox的样式的问题,期待高手!!!
- treeview,如果用js得到当前结点的父结点id呢?
- 用bool state=Directory.Exists(fullPath);判断文件是否存在,但是文件存在或不存在返回的state都是false,为什么呢?
- 存储过程能不能建立在一个文件上再调用它们???
- 读取数据库合并两个表,然后fill到一个dataset。
- 请问:为什么不能访问aspx
- 当页面被刷新时,js1.js会不会被重新下载
- 连接本地数据库比连接远程慢
- 如何用linq插入含自增长列的数据?
外层datalist绑定父信息,根据外层的父id绑定子信息
cellspacing="0"
Font-Size="11" ForeColor="#000" RepeatColumns="1">
<ItemTemplate>
<a class="fl" href="zflxs.aspx?id=<%# DataBinder.Eval(Container, "DataItem.分类表ID") %>" style="float:left;"><%# DataBinder.Eval(Container, "DataItem.分类产品名称") %></a>
<br />
<asp:DataList ID="DataList2" runat="server" DataKeyField="sp_WareID"
RepeatColumns="3" RepeatDirection="Horizontal" Width="100%" DataSource='<%# (Container.DataItem as System.Data.DataRowView).Row.GetChildRows("myRelation") %>'>
<ItemTemplate>
<table><tr>
<td align="center" colspan="3" style="width:207px;height:75px">
<asp:Image ID="Image1" runat="server" style="width:60px;height:75px" ImageUrl='<%#Eval("产品详细表图片") %>' /></td>
</tr>
<tr>
<td align="center" colspan="3" style="width:207px">
<asp:Label ID="sp_WareNameLabel" runat="server" Text='<%#Eval("产品详细表产品名称") %>'></asp:Label></td>
</tr>
<tr>
<td align="center" colspan="3" style="width:207px">当前价格:
<asp:Label ID="sp_PriceLabel" runat="server" Text='<%#Eval("产品详细表产品价格") %>'></asp:Label>元</td>
</tr>
<tr>
<td align="center" colspan="3" style="width:207px">
<a href="WareDetail.aspx?wareID=<%#DataBinder.Eval(Container.DataItem,"产品详细表产品ID") %>"><asp:Button ID="Button1" runat="server" Text="详细" /></a> <a style="font-size:small" href='WareShoppingCart.aspx?wareID=<%#DataBinder.Eval(Container.DataItem,"sp_WareID") %>'><asp:Button ID="Button2"
runat="server" Text="购买" /></a></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>后台: private void BindList()
{
string connstr = ConfigurationManager.ConnectionStrings["SuperMarketDB"].ConnectionString;
SqlConnection cn = new SqlConnection(connstr);
cn.Open();
string id = Request.QueryString["点击大分类后传过来的ID"];
DataSet ds = new DataSet();
string sql1 = "select 分类表ID,分类表分类名 from 分类表 where 父ID in (select 分类表ID from 分类表 where 父ID='" + 点击大分类后传过来的ID.Trim() + "')";
SqlDataAdapter sda1 = new SqlDataAdapter(sql1, cn);
sda1.Fill(ds, "T_WareType");
string sql2 = "select 产品详细表ID, 分类表ID, 产品详细表产品名, 产品详细表产品价格, 产品详细表产品图片 from 产品详细表";
SqlDataAdapter sda2 = new SqlDataAdapter(sql2, cn);
sda2.Fill(ds, "T_Ware");
cn.Close();
ds.Tables[0].TableName = "T_WareType";
ds.Tables[1].TableName = "T_Ware"; DataRelation ordersToOrderDetails = ds.Relations.Add("myRelation", ds.Tables["T_WareType"].Columns["分类表ID"], ds.Tables["T_Ware"].Columns["分类表ID"],false); DataList1.DataSource = ds.Tables["T_WareType"];
DataList1.DataBind();
}运行后没错误,但是看不到任何东西 就是都没有显示 这是什么原因呢? 没告诉datalist2要怎么显示? 要怎么弄呢。。 求高手们帮帮忙 谢谢了~~~
我的树的最高节点就是一个根目录 这个根目录是我上传到服务器的文件夹 选中它点击添加文件夹
根目录
文件1
点击文件1 里面右边出现相应列表 显示上传文件的信息..
界面类似windows资源管理器 一直等着有高手解决-= -
例子是输入一级大类别递归输出目录树
//private string OutPutNewsKind(IList<NewsKind> kindList)
//{
// StringBuilder sb = new StringBuilder();
// sb.Append("<ul>");
// foreach (NewsKind nk in kindList)
// {
// //子类列表
// IList<NewsKind> subKind = (new SDPPCEntities()).NewsKind.Where(n => n.FkindID == nk.KindID).ToList();
// //输出树结构
// sb.Append("<li><span class=\"");
// sb.Append(subKind.Count > 0 ? "folder" : "file");
// sb.Append("\">");
// sb.Append("<a href=\"/ccenter/article/default.aspx?kind=");
// sb.Append(nk.KindID);
// sb.Append("\">");
// sb.Append(nk.KindName);
// sb.Append("</a>");
// sb.Append("</span>");
// //递归子类输出
// if (subKind.Count > 0)
// {
// sb.Append(OutPutNewsKind(subKind));
// }
// sb.Append("</li>");
// }
// sb.Append("</ul>");
// return sb.ToString();
//}
我第1点用了label直接接收了,第2 3点用2层datalist来做,原来有个分类可以实现,但是把代码搬过来就显示不了 不知道怎么回事。