频道栏目
首页 > 程序开发 > Web开发 > ASP.Net > 正文
asp.net(C#)html无限分类树 可新增 删除 修改
2013-11-30 10:16:08           
收藏   我要投稿
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ProductSort.aspx.cs" Inherits="ChaoFenPlat_ProductSort" %>  

  

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

  

<html xmlns="https://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">  

    <p>  

    <!--  导航内容 -->  

        <asp:Literal ID="Literal1" runat="server"></asp:Literal>  

    </p>  

    </form>  

</body>  

</html>  

 

[csharp] 

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  

}  

 

[html] 

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

  

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

  

<html xmlns="https://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">  

    <p>  

        <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>  

      

    </p>  

    </form>  

</body>  

</html>  

 

[csharp]  

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>");  

        }    

  

    }  

}  

点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:.net jMail收邮件(含写入数据库及收取附件)
下一篇:.Net开发的Word抽取工具介绍
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站