列表树结构

asp.net类别多级树结构显示

效果:

前台

 <asp:Repeater ID="NewsLists" runat="server" onitemcommand="NewsList_ItemCommand" 
                                onitemdatabound="NewsLists_ItemDataBound"><ItemTemplate>
  <tr>
    <td height="28" align="center"><%#Eval("CategoryId")%></td>
    <td align="left">
        <asp:Literal ID="LitFirst" runat="server"></asp:Literal>
        <asp:Label ID="LabClassNm" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"CategoryName") %>'></asp:Label>
        </td>
    <td align="left"><asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("OrderNum")%>'></asp:TextBox></td>
    <td align="center">
    <asp:LinkButton ID="LinkButton2" runat="server"
                            CommandName="OrderNumEdit" CommandArgument='<%#Eval("CategoryId") %>' >[排序]</asp:LinkButton>
    <asp:LinkButton ID="LinkButton3" runat="server"
                            CommandName="UpdateCmd" CommandArgument='<%#Eval("CategoryId") %>'>[修改]</asp:LinkButton>
    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="return confirm('真的要删除选择项?');"
                            CommandName="DeleteCmd" CommandArgument='<%#Eval("CategoryId") %>'>[删除]</asp:LinkButton>
    </td>
  </tr>
  </ItemTemplate></asp:Repeater>

后台数据绑定:

手动构建一个datatable

        DataTable dt = new DataTable();
        /// <summary>
        /// 初始dt
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Page_Init(object sender, System.EventArgs e)
        {
            DataColumn dc1 = new DataColumn("CategoryId");
            DataColumn dc2 = new DataColumn("CategoryName");
            DataColumn dc3 = new DataColumn("ParentId");
            DataColumn dc4 = new DataColumn("OrderNum");
            DataColumn dc5 = new DataColumn("IsDelete");
            DataColumn dc6 = new DataColumn("SeoTitle");
            DataColumn dc7 = new DataColumn("SeoDes");
            DataColumn dc8 = new DataColumn("SeoKeys");
            DataColumn dc9 = new DataColumn("TemplateId");

            dt.Columns.Add(dc1);
            dt.Columns.Add(dc2);
            dt.Columns.Add(dc3);
            dt.Columns.Add(dc4);
            dt.Columns.Add(dc5);
            dt.Columns.Add(dc6);
            dt.Columns.Add(dc7);
            dt.Columns.Add(dc8);
            dt.Columns.Add(dc9);
        }

按照级别添加数据

private void BindTree(int ChildNodes)
        {
            //绑定根节点
            this.ImageButton2.Visible = true;
            this.ImageButton3.Visible = false;

            DataTable dt1 = this.GetParentdt(ChildNodes);
            foreach (DataRow dr in dt1.Rows)
            {
                DataRow dar = dt.NewRow();
                dar[0] = dr[0];
                dar[1] = dr[1];
                dar[2] = dr[2];
                dar[3] = dr[3];
                dar[4] = dr[4];
                dar[5] = dr[5];
                dar[6] = dr[6];
                dar[7] = dr[7];
                dar[8] = dr[8];
                dt.Rows.Add(dar);

                BindTree(int.Parse(dr["CategoryId"].ToString()));
            }

        }


取栏目ID下数据

        private DataTable GetParentdt(int CategoryId)
        {
            DataTable dt1 = new DataTable();
            dt1 = XwSqlHtmlGenV.WelkinDataClass.WelkinDataTable("XW_NewsCategory", "", "CategoryId desc", string.Format("IsDelete=0 and ParentId={0}", CategoryId));
            return dt1;
        }

 

 

不同级别根据TemplateId层来区别,显示不同样式

        protected void NewsLists_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            {
                Literal LitFirst = (Literal)e.Item.FindControl("LitFirst");
                Label LabClassNm = (Label)e.Item.FindControl("LabClassNm");
                LinkButton linkbutton = (LinkButton)e.Item.FindControl("BtnEdit");

                string LitStyle = "<span style=width:{0}px;text-align:right;display:inline-block;>{1}{2}</span>";

                string LitImg1 = "<img src='../XwCss/images/openfolder.gif' align=absmiddle />";
                string LitImg2 = "<img src='../XwCss/images/file.gif' align=absmiddle />";
                string LitImg3 = "<img src='../XwCss/images/t.gif' align=absmiddle />";

                DataRowView drv = (DataRowView)e.Item.DataItem;
                int ClassTj = Convert.ToInt32(drv["TemplateId"]);

                if (ClassTj == 1)
                {
                    LabClassNm.Font.Bold = true;
                    LitFirst.Text = LitImg1;
                }
                else
                {
                    LitFirst.Text = string.Format(LitStyle, ClassTj * 20, LitImg3, LitImg2);
                }
            }
        }

 

转载于:https://www.cnblogs.com/TomTiger/archive/2013/04/18/3028360.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值