table name superid id 独家报道 0 55
海归创业 0 56
最新新闻 55 73
最新新闻 55 65要从数据库中读出后做2级菜单 dropdownlist 独家报道
|- 最新新闻
|- 最新新闻
海归创业
海归创业 0 56
最新新闻 55 73
最新新闻 55 65要从数据库中读出后做2级菜单 dropdownlist 独家报道
|- 最新新闻
|- 最新新闻
海归创业
解决方案 »
- gridview 显示HTML控件
- 找到一个好的WEB打印控件“四方在线WEB打印控件”
- 在线等待 IP地址问题
- 比較有難度的問題,有關與彈出窗口關閉刷新子窗口!
- 三层架构的简单问题,会的不难
- 为什么用url来传中文会丢字?
- 如何修改一个DropDownList的列表中的某一个值?
- 怎么让页面Excel文档的链接在Excelz中打开!而不是嵌在页面里显示!
- 我在datagrid中绑定了checkbox实现删除功能结果删除的时候只能删除每一页的第一条记录
- 我想让button服务器控件先执行客户端代码再提交,如果实现?
- 【菜鸟提问】我想将隐藏的表格显示出来请问命令该怎么写呢?
- 如何突破.net水晶报表30次使用限制?
dropdownlist1.Items.Insert(i,"值");
DataTable dt2 = new DataTable();
dt1 = ds.Tables[0];
dt2 = ds.Tables[0];
for(int i=0;i<dt1.Rows.Count;i++)
{
if (dt1.Rows[i]["superid"].ToString().CompareTo("0") == 0)
{
DropDownList1.Items.Add(new ListItem(dt1.Rows[i]["name"].ToString(), dt1.Rows[i]["id"].ToString()));
for (int j = 0; j < dt2.Rows.Count; j++)
{
if (dt1.Rows[i]["superid"].ToString().CompareTo(dt1.Rows[i]["id"].ToString()) == 0)
{
DropDownList1.Items.Add(new ListItem(dt1.Rows[j]["name"].ToString(), dt1.Rows[j]["id"].ToString()));
}
}
}
}笨方法,数据量不大时可以使用
//****栏目信息是一张表//****然后建立两表的关系,就可以做成你需要的效果了//****这里给出前台HTML代码
<select id="selInfoColumr">
<option value="-1">===请选择===</option>
<asp:DataList ID="DListInfo" runat="server">
<ItemTemplate>
<option value='<%# DataBinder.Eval(Container.DataItem,"InfoID")%>'>+<%# DataBinder.Eval(Container.DataItem,"InfoTitel")%></option>
<asp:DataList ID="chileInfoList" runat="server" DataSource='<%# ((DataViewRow)Container.DataItem).Row.GetChildRows("myparent") %>'>
<ItemTemplate>
<option value='<%# DataBinder.Eval(Container.DataItem,"[\"InfoID\"]")%>'> |-<%# DataBinder.Eval(Container.DataItem,"[\"InfoTitle\"]")%>
</option>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:DataList>
</select>
2 海归创业 056
055 最新新闻 1
056 最新新闻 2
056 海归创业 0
001 最新新闻 055
002 最新新闻 056
|- 最新新闻
海归创业
|- 最新新闻这样设计出来的是这个效果
id name Parentid 055 独家报道 0
056 海归创业 0
001 最新新闻 055
002 最新新闻 056
建议用TreeView
public void InitColumnTreeView(ref Microsoft.Web.UI.WebControls.TreeView treview)
{
//****清空当前树
treview.Nodes.Clear(); //*****邦定Javascript函数
treview.Attributes.Add("ondblclick", "javascript:ReturnSelectNodeIndexValue();"); //****设置展开一级目录
treview.ExpandLevel = 1; Microsoft.Web.UI.WebControls.TreeNode TRPNode = null; SystemColumn.TBSystemColumn mTBSystemColumn = new SystemColumn.TBSystemColumn(); DataSet DSet = (new SystemColumn.SystemColumn()).SystemColumnGetTreeNode(mTBSystemColumn); foreach (DataRow dRow in DSet.Tables[0].Rows)
{
//****加载数据
TRPNode = new Microsoft.Web.UI.WebControls.TreeNode(); TRPNode.Text = dRow["PNodeName"].ToString();
TRPNode.NodeData = dRow["PNodeCode"].ToString() + "\t" + dRow["PNODENAME"].ToString(); //****加载节点
treview.Nodes.Add(TRPNode); //****获取节点编号
string strPNodeCode = dRow["PNodeCode"].ToString(); //*****加载相应子节点
InitColumnChileTreeNode(TRPNode, ref strPNodeCode);
} } private void InitColumnChileTreeNode(Microsoft.Web.UI.WebControls.TreeNode TRPNode, ref string PNodeCode)
{
//****创建一个节点
Microsoft.Web.UI.WebControls.TreeNode TRPChileNode = null; DataSet DSet = (new SystemColumn.SystemColumn()).SystemColumnGetTreeNodeChile(PNodeCode); foreach (DataRow dRow in DSet.Tables[0].Rows)
{
//*****加载相应数据
TRPChileNode = new Microsoft.Web.UI.WebControls.TreeNode(); TRPChileNode.Text = dRow["PNodeName"].ToString(); TRPChileNode.NodeData = dRow["PNodeCode"].ToString() + "\t" + dRow["PNODENAME"].ToString(); //****添加子节点到根节点中
TRPNode.Nodes.Add(TRPChileNode); string strPNodeCode = "";
strPNodeCode = dRow["PNodeCode"].ToString(); //*****递推下级节点
InitColumnChileTreeNode(TRPChileNode, ref strPNodeCode);
}
}
独家报道 0 100 55
海归创业 0 200 56
海归置业 0 300 57
海外风情 0 400 58
海外移民 0 500 59
出国考试 0 600 60
教育展览 0 700 72
最新新闻 55 201 73
最新新闻 55 202 65
海归空间 0 800 0加了个ORDERID,
按OEDERID排序 For Each objectRow In data.Tables(0).Rows If objectRow.Item("superclass") <> 0 Then
objectRow.Item("classname") = " |- " + objectRow.Item("classname")
End If
newdata.Tables(0).Rows.Add(objectRow.ItemArray)
Next用这个处理一下,,,
呵呵,可以数据量小的时候使用,,,大家看看,,,数据量大的话,还有其他的方法麽谢谢啦,,,,,
将数据集放在DataSet 中后,通过DataRow[] dr=Ds.table[0].Rows.seletFiler("父级="父编码);递归过滤;即可得到结构。()