网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 Asp.Net实现无限分类生成表格的方法(后台自定义输出table)
内容
    本文实例讲述了Asp.Net实现无限分类生成表格的方法。分享给大家供大家参考,具体如下:
    数据结构 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>  ";
              returnString += "<a href='class_modi.aspx?monitor_grp_id=" + row["monitor_grp_id"] + "'>修改</a>  ";
              returnString += "<a href='class_del.aspx?monitor_grp_id=" + row["monitor_grp_id"] + "' onclick=\"javascript:{if(!confirm('确删要删除该类及其子类吗?'))return false;}\">删除</a>  ";
              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, 0, ref 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 cellpadding="0" cellspacing="1" bgcolor="#66AADD">
       <tr 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">监视器组</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);
    至于循环及其其他的方法自己构造
    希望本文所述对大家asp.net程序设计有所帮助。
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/23 10:03:11