60分:二级分类的管理?

muziruyue 2006-09-17 07:57:06
有个分类表,要想在一个页面上显示,显示的情况如下:
一级栏目 修改 删除
二级栏目 修改 删除
二级栏目 修改 删除
二级栏目 修改 删除
一级栏目 修改 删除
二级栏目 修改 删除
二级栏目 修改 删除
一级栏目 修改 删除
二级栏目 修改 删除
二级栏目 修改 删除

需要实现类似上面的显示样式,是在后台管理分类中,在asp里我用个循环嵌套就可以了,在asp.net里怎么实现?请大家指教!多谢!
...全文
230 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
muziruyue 2006-09-26
  • 打赏
  • 举报
回复
请羽儿帮我解决一下???
muziruyue 2006-09-26
  • 打赏
  • 举报
回复
请路过的帮我顶一下,不能沉下去,谢谢各位大哥了
jxdyzwh 2006-09-18
  • 打赏
  • 举报
回复
treeview控件
xiangzi630 2006-09-18
  • 打赏
  • 举报
回复
用DataGrid中的模板列可以实现
ldw701 2006-09-18
  • 打赏
  • 举报
回复
.CS
namespace URL.UserControl
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Url.Business;
using Url.Common;

/// <summary>
/// ClassIndex 的摘要说明。
/// </summary>
public class ClassIndex : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.DataList ParentDataList;


private int _AreaId;
public int AreaId
{
get{return this._AreaId;}
set{this._AreaId = value;}
}
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if (!Page.IsPostBack)
{
DataBindParentClass();
}
}

private void DataBindParentClass()
{
Url.Business.Class cls = new Url.Business.Class();
DataTable objDt = cls.GetParentClass(this._AreaId,0,0,"");
ParentDataList.DataSource = objDt.DefaultView;
ParentDataList.DataBind();
}

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

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

}
#endregion

private void ParentDataList_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList SubDataList = (DataList)e.Item.FindControl("ClassDataList");
int ParentId = Convert.ToInt32(ParentDataList.DataKeys[e.Item.ItemIndex]);
Url.Business.Class cls = new Url.Business.Class();
DataTable dt = cls.GetSmallClass(ParentId,0,"");

SubDataList.DataSource = dt.DefaultView;
SubDataList.DataBind();

}
}

public string GetString(int IsParentClass,int ClassId)
{
string AreaEName;
string ClassEName;
string ReturnValue=string.Empty;
DataTable objDt = new Url.Business.Area().GetAreaById(AreaId);
if(objDt.Rows.Count >0)
AreaEName = objDt.Rows[0]["AreaDir"].ToString();
else
AreaEName = "all";//全国站
//AreaEName = "test";
Url.Business.Class Cls = new Url.Business.Class();
Cls.Id = Convert.ToInt32(ClassId);
DataTable objClassName = Cls.GetClassInfo("ClassName");
ClassEName = objClassName.Rows[0]["EName"].ToString();
if(AreaEName.ToLower()=="all")
{
//if (IsParentClass==1)
ReturnValue = "<a href=\"Class/"+ClassEName+".html\" target=\"_blank\">"+objClassName.Rows[0]["ClassName"].ToString()+"</a>";
//else
//{
// Url.Business.Class Class = new Url.Business.Class();
// Class.Id = Convert.ToInt32(objClassName.Rows[0]["ParentId"]);
// DataTable objParentClass = Class.GetClassInfo("ParentClassInfo");
// ReturnValue = "<a href=\"Class/"+objParentClass.Rows[0]["EName"].ToString()+".html#"+ClassEName+"\">"+objClassName.Rows[0]["ClassName"].ToString()+"</a>";
//}
}
else
{
//if (IsParentClass==1)
ReturnValue = "<a href=\"Class/"+ClassEName+".html\" target=\"_blank\">"+objClassName.Rows[0]["ClassName"].ToString()+"</a>";
//else
//{
// Url.Business.Class Class = new Url.Business.Class();
// Class.Id = Convert.ToInt32(objClassName.Rows[0]["ParentId"]);
// DataTable objParentClass = Class.GetClassInfo("ParentClassInfo");
// ReturnValue = "<a href=\"Class/"+objParentClass.Rows[0]["EName"].ToString()+".html#"+ClassEName+"\">"+objClassName.Rows[0]["ClassName"].ToString()+"</a>";
//}
}
return ReturnValue;
}
}
}
ldw701 2006-09-18
  • 打赏
  • 举报
回复
这是一个用户控件,你改改就好了
html:
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="ClassIndex.ascx.cs" Inherits="URL.UserControl.ClassIndex" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<table cellPadding="0" width="100%" align="center" border="0">
<tr>
<td vAlign="top" Width="100%"><asp:datalist id="ParentDataList" DataKeyField="ID" RepeatDirection="Vertical" RepeatColumns="1"
Runat="server" Width="100%">
<ItemStyle CssClass="text_k_12_3"></ItemStyle>
<ItemTemplate>
<table cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
<tr>
<td width="16"><IMG height="9" src="http://www.wz360.cn/Images/Module/wzsy_31.gif" width="9"></td>
<td class="text_k_12_3" align="left"><%# GetString(1,Convert.ToInt32(DataBinder.Eval(Container.DataItem,"Id")))%></td>
</tr>
</table>
<table width="85%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align="center" width="100%">
<asp:DataList ID="ClassDataList" Runat="server" RepeatColumns="2" RepeatDirection="Horizontal"
HorizontalAlign="Center" RepeatLayout="Table" Width="100%" CssClass="text_k_12_3">
<ItemTemplate>
<span class="text_b_12_5">[<%# GetString(0,Convert.ToInt32(DataBinder.Eval(Container.DataItem,"Id")))%>]</span>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:datalist></td>
</tr>
</table>
cabee 2006-09-17
  • 打赏
  • 举报
回复

修改一下


这样吧,用DATASET 两个DATASET
DataSet classData=这里是父类的DataSet
然后循环
for(int i=0;i<classData.Tables[TableName].Rows.Count;i++)
{
DataRow tempRow=classData.Tables[TableName].Rows[i];
string sql="select * from 分栏 where classid="+tempRow[ID];这里是建一个SQL提取属于该父类的分栏
DataSet sortSet=这里把取提的分类的数据;
for(int j=0;j<classData.Tables[TableName].Rows.Count;j++)
{
写上相关代码
}
}

由于现在本人在外面没有相关的代码.只能这样写出来啦楼主参考一下就行了
cabee 2006-09-17
  • 打赏
  • 举报
回复
这样吧,用DATASET 两个DATASET
DataSet classData=这里是父类的DataSet
然后循环
for(int i=0;i<classData.Tables[TableName].Rows.Count;i++)
{
DataRow tempRow=classData.Tables[TableName].Rows[i];
string sql="select * from 分栏 where classid="+tempRow[ID];这里是建一个SQL提取属于该父类的分栏
DataSet sortSet=这里把取提的分类的数据;
for(int i=0;i<classData.Tables[TableName].Rows.Count;i++)
{
写上相关代码
}
}

由于现在本人在外面没有相关的代码.只能这样写出来啦楼主参考一下就行了
muziruyue 2006-09-17
  • 打赏
  • 举报
回复
能不能弄个示例
或者说一下
怎么样把参数传递到第二个 DataList
oldmoon 2006-09-17
  • 打赏
  • 举报
回复
dataList嵌套实现
muziruyue 2006-09-17
  • 打赏
  • 举报
回复
用 DataList 嵌套
参数怎么传递到第二个DataList 中呢
popunionxy(闭关修练) (能不能给个提示
kbxj406 2006-09-17
  • 打赏
  • 举报
回复
去看看他的blog:
http://www.cnblogs.com/singlepine/archive/2006/04/05/367801.html
muziruyue 2006-09-17
  • 打赏
  • 举报
回复
想不出来了,能不能兄弟门,给个小小的示例
popunionxy 2006-09-17
  • 打赏
  • 举报
回复
用 DataList 嵌套

kbxj406 2006-09-17
  • 打赏
  • 举报
回复
考虑用用treeview控件
zahuifan 2006-09-17
  • 打赏
  • 举报
回复
up
muziruyue 2006-09-17
  • 打赏
  • 举报
回复
有没有其它的办法呢?
不想用ASP写
这个是后台二级分类管理员功能,点管理,就出来这个页面
然后,各自有修改,删除功能
kbxj406 2006-09-17
  • 打赏
  • 举报
回复
把在asp里我用个循环嵌套搬到页面的cs文件中来实现,除了语法改一下,别的没什么不一样

62,046

社区成员

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

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

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

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