本文实例讲述了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" + row["monitor_grp_id"] + "'>添加子类</a> "; returnString += "<a href='class_modi.aspx" + row["monitor_grp_id"] + "'>修改</a> "; returnString += "<a href='class_del.aspx" + row["monitor_grp_id"] + "' onclick=\"javascript:{if(!confirm('确删要删除该类及其子类吗">删除</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 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);
至于循环及其其他的方法自己构造
更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。
希望本文所述对大家asp.net程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 纯音入心系列纯音乐《中央民族乐团-古筝传奇》1CD[MP3][253.1MB]
- 江玲.1989-这样你才爱我,是吗?【新作有声】【WAV+CUE】
- 郭美美.2010-我是郭美美【华纳】【WAV+CUE】
- 黄心懋1991-轻忧郁【滚石】【WAV+CUE】
- 群星.2000-大地金曲世纪回顾2CD【大地】【WAV+CUE】
- 王菲.1996-浮躁(2024环球MQA-UHQCD限量版)【环球】【WAV+CUE】
- 群星.2022-传家电视剧原声带【东阳欢娱】【FLAC分轨】
- 《摇滚教父 伍佰黄金精选 2CD》 [WAV+CUE][1GB]
- 《凤凰传奇 我从草原来》[WAV/分轨][400MB]
- 《叶倩文 真心真意过一生》[WAV+CUE][400MB]
- 潘越云.1985-世间女子(滚石25周年经典复刻版)【滚石】【WAV+CUE】
- 陈柏宇.2009-CANT.BE.HALF【SONY】【WAV+CUE】
- 李明依.1989-小女生【滚石】【WAV+CUE】
- 《李荣浩 新时代创作新人王》[WAV分轨][310MB]
- 《黑鸭子与马头琴 史上最动听草原音乐》[WAV+CUE][320MB]