zoukankan      html  css  js  c++  java
  • Asp.Net 无限分类生成表格 <后台自定义输出table>

    数据结构 monitor_group


    monitor_grp_id      monitor_grp_name     parent_id       level               childCount       orderby

    [int,自动递增]           [nvarchar,not null]      [int,not null]  [int,not null]   [int,not null]     [int ,null]

                          1       数据库服务器                 0                    1                   2
                          2       应用服务器                    0                    1                   2
                          3       系统服务器                    0                    1                   0
                          4       WEB服务器                   1                    2                   0
                          5      邮件服务器                     1                    2                   0
                          6     代理服务器                      2                    2                   0
                          7     Ftp服务器                       2                    2                   0

    \App_code\data.cs

    using System;
    using System.Data;
    using MySql.Data.MySqlClient;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    /// <summary>
    ///common 的摘要说明
    /// </summary>
    /// 

    namespace yihan
    {

        
    namespace Data
        {
            
            
    public class myDataBind
            {
                
                
    public myDataBind()
                {
                    
    //
                    
    //TODO: 在此处添加构造函数逻辑
                    
    //
                }

               
    public static string GetTree_monitor_grp_id(DataTable dt, int parent_id, ref string returnString)
                {
                    
    //绑定目录树
                    
    //dt:DataTable对象;parent_id:父ID;returnString:输出引用变量;
                    DataRow[] dr = dt.Select("parent_id=" + parent_id);
                    
    int currentLenght = 0;         //当前次数
                    foreach (DataRow row in dr)
                    {
                        
                        
    string nodeImg = "";        //节点图片
                        string treeLineImg = "";    //树线
                        currentLenght += 1;
                        
    if (Convert.ToInt32(row["childCount"]) > 0)
                        {nodeImg 
    = "<img src='images/treeExpand.gif' align='absmiddle'>";}
                        
    else
                        {nodeImg 
    = "<img src='images/treeNode.gif' align='absmiddle'>";}
                        
    for (var i = 1; i <= Convert.ToInt32(row["level"]); i++)
                        {
                            
    //计算treeLineImg
                            if (i == Convert.ToInt32(row["level"]))
                            {
                                
    if (currentLenght == dr.Length)     //判断当前次数是否与本次dr总数量相等
                                { treeLineImg += "└ "; }
                                
    else 
                                { treeLineImg 
    += "├ "; }
                                
                            }
                            
    else
                            {
                                treeLineImg 
    += "│ ";
                            }

                        }
                        returnString 
    += "<tr>\n";
                        returnString 
    += "<td align='left'>" + treeLineImg + nodeImg + " " + row["monitor_grp_name"+ "</td>\n";
                        returnString 
    += "<td align='center'>" + row["level"+ "</td>\n";
                        returnString 
    += "<td align='center'>" + row["childCount"+ "</td>\n";
                        returnString 
    += "<td align='center'>";
                        returnString 
    += "<a href='class_add.aspx?monitor_grp_id=" + row["monitor_grp_id"+ "'>添加子类</a> &nbsp;";
                        returnString 
    += "<a href='class_modi.aspx?monitor_grp_id=" + row["monitor_grp_id"+ "'>修改</a> &nbsp;";
                        returnString 
    += "<a href='class_del.aspx?monitor_grp_id=" + row["monitor_grp_id"+ "' onclick=\"javascript:{if(!confirm('确删要删除该类及其子类吗?'))return false;}\">删除</a> &nbsp;";
                        returnString 
    += "</td>\n";
                        returnString 
    += "</tr>\n";
                        GetTree_monitor_grp_id(dt, Convert.ToInt32(row[
    "monitor_grp_id"]), ref returnString);
                    }
                    
    return returnString;
                }
    //GetCatalogTree End

             }
    //myDataBind End

         }
    }

    class_list.aspx.cs

    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using yihan.Data;

    public partial class monitor_monitor_group_class_list : System.Web.UI.Page
    {
        
    protected void Page_Load(object sender, EventArgs e)
        {
            
    if (!IsPostBack)
            {
                DataTable dt 
    = new DataTable();
                
    string resultString = "";
                
    string sql = "select * from monitor_group order by orderby desc,monitor_grp_id";
                DbConn conn 
    = new DbConn();
                dt 
    = conn.DataTable(sql);
                Literal1.Text 
    = myDataBind.GetTree_monitor_grp_id(dt, 0ref resultString);  //调用
                dt.Dispose();
                conn.Close();
            }
        }
        
    }

    class_list.aspx

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

    <body>  
        
    <form id="form1" runat="server">
        
    <table class="conBox" width="100%"  border="0" cellpadding="0" cellspacing="1" bgcolor="#66AADD">
          
    <tr align="center" bgcolor="#999999">
            
    <th width="36%" bgcolor="#BAD8EF">监视器组名称</th>
            
    <th width="9%" bgcolor="#BAD8EF">级别</th>
            
    <th width="15%" bgcolor="#BAD8EF">子节点总数</th>
            
    <th width="29%" bgcolor="#BAD8EF">操作</th>
          
    </tr>
          
    <tr>
            
    <td colspan="5" style="padding-left:6px;background:#DBDBDB;">监视器组</td>
          
    </tr>
            
    <asp:Literal ID="Literal1" runat="server"></asp:Literal>
        
    </table>
        
    </form>
    </body>


    手写Table
    string s="<table>"
    s
    +="<tr><td>";
    s
    +=变量值;
    s
    +="</td></tr></table>";
    ResPonse.Write(s);

    _______________________________________________________________________________
    至于循环及其其他的方法自己构造
  • 相关阅读:
    关于医保卡的正确使用
    mysql rpm安装,以及修改charset
    hql小经验
    工资构成
    distinct 与order by 一起用
    服务器设置浏览器的文档模式
    项目管理
    show processlist 各个状态说明
    sql 查询优化
    定时器备份数据库
  • 原文地址:https://www.cnblogs.com/Fooo/p/1503233.html
Copyright © 2011-2022 走看看