Asp.Net 무한 분류 로 표를 만 드 는 방법(배경 사용자 정의 출력 table)

이 사례 는 Asp.Net 이 무한 분류 로 표를 만 드 는 방법 을 설명 한다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
데이터 구조 모니터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>
"; returnString += "<td align='left'>" + treeLineImg + nodeImg + " " + row["monitor_grp_name"] + "</td>
"; returnString += "<td align='center'>" + row["level"] + "</td>
"; returnString += "<td align='center'>" + row["childCount"] + "</td>
"; 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>
"; returnString += "</tr>
"; 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 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>

필기 테이블

string s="<table>"
s+="<tr><td>";
s+=   ;
s+="</td></tr></table>";
ResPonse.Write(s);

순환 및 기타 방법 자체 구조
더 많은 asp.net 관련 내용 에 관심 이 있 는 독 자 는 본 사이트 의 주 제 를 볼 수 있 습 니 다.,과 을 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 asp.net 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기