文档章节

asp.net(C#)html无限分类树 可新增 删除 修改

深圳大道
 深圳大道
发布于 2016/12/29 15:39
字数 1103
阅读 20
收藏 0
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProductSort.aspx.cs" Inherits="ChaoFenPlat_ProductSort" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>商品分类</title>
    <link href="Css/default.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../js/jquery-1.8.0.min.js"></script>
    <!--jquery_dialog-->
    <link type="text/css" rel="stylesheet" href="../css/jquery_dialog.css" />
    <script type="text/javascript" src="../js/jquery_dialog.js"></script>
    <script type="text/javascript" src="../js/common.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <!--  导航内容 -->
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ChaoFenPlat_ProductSort : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //登录检查
            ChaoFen.Common.RoleHelper.CheckSession("Login.aspx");
            //权限检查
            ChaoFen.Common.RoleHelper.RolePage("104701");
            Literal1.Text = showtree();
        }
    }

    #region 显示权限树

    private int S_Isroot;
    private string NS_Name;
    private string NS_Id;
    private string trees;
    private StringBuilder BuilderBody = new StringBuilder();
    public string showtree()
    {
        StringBuilder Builder = new StringBuilder();
        Builder.AppendLine("<table id='tableAction' class='tableCss'>");
        Builder.AppendLine("<th>分类名称</th><th>分类ID</th><th>操作</th>");
        DataTable dt = MSCL.SqlHelper.GetDataTable("select * from pr_sort order by sortorder");
        showtreeforline(dt, "0", "parentid", "");
        Builder.Append(BuilderBody);
        Builder.AppendLine("<tr><td colspan='3' align='left'>");
        Builder.AppendLine("<a href='javascript:showMyModalDialog(\"ProductSortCmd.aspx?cmd=addtop\",\"600\",\"300\");'>添加顶级分类</a>");
        Builder.AppendLine("</td></tr>");
        Builder.AppendLine("</table>");
        return Builder.ToString();
    }
    #endregion

    #region 递归显示HTML树
    /// <summary>
    /// 递归显示HTML树
    /// </summary>
    /// <param name="dt">datatable</param>
    /// <param name="moduleid">主键ID</param>
    /// <param name="tree">tree字符串</param>
    public void showtreeforline(DataTable dt, string moduleid, string modulefatherid, string tree)
    {
        bool ParentBool = true; //是否父节点
        if (tree.Length == 0 || tree == "" || tree == String.Empty) S_Isroot = 0;
        trees = "1";
        string treestr = tree + trees;
        DataRow[] dr = dt.Select(modulefatherid + "=" + moduleid);

        for (int i = 0; i < dr.Length; i++)
        {
            NS_Name = dr[i].ItemArray[1].ToString();
            NS_Id = dr[i].ItemArray[0].ToString();
            string Ns_Parentid = dr[i].ItemArray[2].ToString();

            if (i + 2 > dr.Length)
            {
                trees = "0";
                treestr = tree + trees;
            }
            BuilderBody.AppendLine("<tr class='tdbg' >");
            BuilderBody.AppendLine("<td vAlign=bottom width='10%' align='center'>" + NS_Id + "</td> ");
            BuilderBody.AppendLine("<td valign='bottom' width='60%' style='text-align:left'>");

            #region 输出层级关系
            for (int k = 0; k < treestr.Length - 1; k++)
            {
                if (treestr.Substring(k, 1) == "1")
                {
                    BuilderBody.AppendLine("        ");
                }
                else
                {
                    BuilderBody.AppendLine("        ");
                }
            }
            #endregion

            #region 判断是否无下级节点
            DataRow[] dr1 = dt.Select(modulefatherid + "='" + NS_Id + "'");
            if (dr1.Length == 0) //无下级,即末级节点
            {
                ParentBool = false;
            }
            else
            {
                ParentBool = true;
            }
            #endregion

            #region 输出树型图片
            if (trees == "0")
            {
                if ((tree == "" || tree == String.Empty || tree == null) && S_Isroot == 0)
                {
                    BuilderBody.AppendLine("        ");
                }
                else
                {

                    BuilderBody.AppendLine("└");
                }
            }
            else if (tree == "" || tree == String.Empty || tree == null)
            {
                if (S_Isroot == 1)
                {
                    BuilderBody.AppendLine("├");
                }
                else
                {
                    BuilderBody.AppendLine("┌");
                }
            }
            else
            {
                BuilderBody.AppendLine("├ ");
            }
            #endregion

            BuilderBody.AppendLine(NS_Name);
            BuilderBody.AppendLine("</td>");
            BuilderBody.AppendLine("<td width='30%' align='center'>");
            BuilderBody.AppendLine(" <a href='javascript:showMyModalDialog(\"ProductSortCmd.aspx?SortID=" + NS_Id + "&cmd=add\",\"600\",\"300\");'>新增下级分类</a> ");
            BuilderBody.AppendLine(" <a href='javascript:showMyModalDialog(\"ProductSortCmd.aspx?SortID=" + NS_Id + "&cmd=edit\",\"600\",\"300\");'>修改</a> ");
            BuilderBody.AppendLine(" <a href='javascript:showMyModalDialog(\"ProductSortCmd.aspx?SortID=" + NS_Id + "&cmd=del\",\"600\",\"300\");'>删除</a> ");
            BuilderBody.AppendLine("</td>");
            BuilderBody.AppendLine("</tr>");
            showtreeforline(dt, NS_Id, modulefatherid, treestr);
            S_Isroot = 1;
        }
    }
    #endregion
}

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProductSortCmd.aspx.cs" Inherits="ChaoFenPlat_ProductSortCmd" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>商品分类信息</title>
    <link href="css/default.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="../js/common.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table class="tableCss" width="100%">
            <tr>
                <td class="tableTitle">
                  商品分类信息
                </td>
            </tr>
            <tr>
                <td>
                    <table id="tbPR_SORT" class="table" width="100%">
                        <tr>
                            <td align="right" style="width: 120px">商品分类名称:</td>
                            <td align="left"><asp:TextBox ID="txtSORTNAME" runat="server"></asp:TextBox></td>
        				</tr>
                        <tr>
                            <td align="right" style="width: 120px">商品分类描述:</td>
                            <td align="left"><asp:TextBox ID="txtSORTDESC" runat="server"></asp:TextBox></td>
        				</tr>
                        <tr>
                            <td align="right" style="width: 120px">商品所属分类:</td>
                            <td align="left">
                                <asp:DropDownList ID="ddlParentID" runat="server">

                                </asp:DropDownList>
                            </td>
        				</tr>
                        <tr>
                            <td align="right" style="width: 120px">商品分类排序:</td>
                            <td align="left"><asp:TextBox ID="txtSORTORDER" runat="server"></asp:TextBox></td>
        				</tr>
                    </table>
                </td>
            </tr>
            <tr>
                <td class="tableBottom">
                <asp:Button ID="btnPR_SORTCmd" runat="server" CssClass="btn" Text="新增数据" 
                        onclick="btnPR_SORTCmd_Click" /></td>
            </tr>
        </table>
    
    </div>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ChaoFenPlat_ProductSortCmd : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            //登录检查
            ChaoFen.Common.RoleHelper.CheckSession("Login.aspx");

            string Action = Request.QueryString["cmd"];
            string SortID = Request.QueryString["SortID"];
            DataTable dt = MSCL.SqlHelper.GetDataTable("select * from PR_SORT");
            if (Action == "add" && !string.IsNullOrEmpty(SortID))
            {                
                AddMethod(dt);
                DataRow[] drs = dt.Select("SORTID='" + SortID + "'");
                MSCL.ControlsHelper.SetControlValue(ddlParentID, drs[0]["SORTID"].ToString(), true);
                btnPR_SORTCmd.Text = "新增商品分类";
            }
            else if (Action == "edit" && !string.IsNullOrEmpty(SortID))
            {
                AddMethod(dt);
                DataRow[] drs = dt.Select("SORTID='" + SortID + "'");
                EditMethod(drs, SortID);
                btnPR_SORTCmd.Text = "修改商品分类";
            }
            else if (Action == "addtop") //添加顶级分类
            {
                AddMethod(dt);                
            }
            else if (Action == "del") //删除
            {
                try
                {
                    ChaoFen.BLL.PR_SORT.Delete(Convert.ToInt32(SortID));
                    ClientScript.RegisterStartupScript(this.GetType(), "CloseRefreshParentForm", "<script>DialogCloseReload('ProductSort.aspx','操作成功!');</script>");
                }
                catch
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "CloseRefreshParentForm", "<script>alert('操作失败,请检查输入是否正确!');</script>");
                }
            }
        }
    }

    protected void AddMethod(DataTable dt)
    {
        MSCL.ControlsHelper.CreateLevelDropDown(ddlParentID, dt, "SORTNAME", "SORTID", "PARENTID");
        ddlParentID.Items.Insert(0, new ListItem("顶级分类", "0"));
    }

    protected void EditMethod(DataRow[] drs, string SortID)
    {
        MSCL.ControlsHelper.SetControlValue(ddlParentID, drs[0]["PARENTID"].ToString(), true);
        txtSORTNAME.Text = drs[0]["SORTNAME"].ToString();
        txtSORTDESC.Text = drs[0]["SORTDESC"].ToString();
        txtSORTORDER.Text = drs[0]["SORTORDER"].ToString();
    }

    protected void DelMethod()
    {

    }


    protected void btnPR_SORTCmd_Click(object sender, EventArgs e)
    {
        string Action = Request.QueryString["cmd"];
        string SortID = Request.QueryString["SortID"];
        string SortName = txtSORTNAME.Text;
        string SortDesc = txtSORTDESC.Text;
        string SortOrder = txtSORTORDER.Text;
        string ParentId = ddlParentID.SelectedItem.Value;

        try
        {
            ChaoFen.Models.PR_SORT model = new ChaoFen.Models.PR_SORT();
            model.SORTID = Convert.ToInt32(SortID);
            model.PARENTID = Convert.ToInt32(ParentId);
            model.SORTNAME = SortName;
            model.SORTDESC = SortDesc;
            model.SORTORDER = Convert.ToInt32(SortOrder);

            if (Action == "add" && !string.IsNullOrEmpty(SortID))
            {
                ChaoFen.BLL.PR_SORT.Add(model);
            }
            else if (Action == "edit" && !string.IsNullOrEmpty(SortID))
            {
                ChaoFen.BLL.PR_SORT.Update(model);
            }
            else if (Action == "addtop") //添加顶级分类
            {
                ChaoFen.BLL.PR_SORT.Add(model);
            }
            ClientScript.RegisterStartupScript(this.GetType(), "CloseRefreshParentForm", "<script>DialogCloseReload('ProductSort.aspx','操作成功!');</script>");
        }
        catch
        {
            ClientScript.RegisterStartupScript(this.GetType(), "CloseRefreshParentForm", "<script>alert('操作失败,请检查输入是否正确!');</script>");
        }  

    }
}


本文转载自:http://blog.csdn.net/smartsmile2012/article/details/17022997

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
C# WinForm开发系列 - XML/XSLT/XPATH

XML在WinForm, Asp.Net, Java, AJAX开发等方面应用, 以及对XML文档基本操作,如XPath检索节点. 当前XML被广泛应用与配置保存, 简单数据存储, 跨平台数据传输, 其身影活跃于Web Services, AJA...

长征2号
2017/07/09
0
0
asp.net core系列 39 Razor 介绍与详细示例

一. Razor介绍   在使用ASP.NET Core Web开发时, ASP.NET Core MVC 提供了一个新特性Razor。 这样开发Web包括了MVC框架和Razor框架。对于Razor来说它是一个新特性,在官方介绍ASP.NET Cor...

花阴偷移
03/08
0
0
.NET 开源工作流 RoadFlow 1.3 发布

RoadFlow是一款集成工作流引擎的ASP.NET快速开发平台,由从事六年以上OA及工作流开发与实施的团队设计开发,该工作流平台已应用于众多大型企事业单位。拥有全浏览器兼容的可视化流程设计器、...

roadflow
2014/07/03
3K
4
阳光企业网站管理系统--SCSCMS

阳光企业网站管理系统V2.0用户手册 阳光企业网站管理系统(Sunshine Corporation Site),简称SCSCMS或SCS,其标识及程序,属太阳光工作室版权所有。 本站公开发行的SCSCMS为开源免费程序,你...

匿名
2011/06/26
4.3K
0
ASP.NET 2.0页面框架的几处变化

作者: http://blog.joycode.com/liuhuimiao/ 新增的页面事件: 在ASP.NET 2.0中,一个ASP.NET页面的生命周期主要为(红色字体表示ASP.NET 2.0新增加的阶段页面事件):客户端请求页面—》预初...

晨曦之光
2012/03/09
75
0

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
25分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部