校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > ASP.NET生成樹形顯示的GridView實現思路

ASP.NET生成樹形顯示的GridView實現思路

熱門標簽:百度ai地圖標注 合肥電銷外呼系統哪家公司做的好 玉林市機器人外呼系統哪家好 南陽外呼系統定制化 申請400電話手續 預測式外呼系統使用說明 蘋果手機凱立德地圖標注 電話機器人軟件銷售工作 同安公安400電話怎么申請流程
目的:生成樹形結構的表格數據(EasyUI也有TreeGrid,此處只是提供一個思路),可以擴展單擊展開/收縮節點
圖例:

類代碼:
復制代碼 代碼如下:

using System;
using System.Data;
/// summary>
///GridViewHelper 的摘要說明
/// /summary>
public class GridViewHelper
{
private string gridline; //連接線
private DataTable dt; //傳入的DataTable
private DataTable dtOut; //輸出的DataTable
private DataRow row; //用于從DataView取數據并增加到dtOut
public GridViewHelper()
{
//
//TODO: 在此處添加構造函數邏輯
//
}
/// summary>
/// 生成樹形結構的DataTable
/// /summary>
/// param name="datatable">原始數據表/param>
/// param name="parentField">上級節點關鍵字段/param>
/// param name="parentValue">上級節點值/param>
/// param name="keyField">本節點關鍵字段/param>
/// param name="textField">顯示的文本字段/param>
/// param name="sortString">排序字符串/param>
/// returns>處理后的DataTable/returns>
public DataTable GetGridViewTreeData(DataTable datatable, string parentField, string parentValue, string keyField, string textField, string sortString)
{
datatable.Columns.Add("level", Type.GetType("System.Int32"));
dt = datatable;
dtOut = datatable.Clone();
resetTextField(parentField, parentValue, keyField, textField, sortString, 0);
return dtOut;
}
/// summary>
/// 遞歸生成新的節點名稱(帶連接線)
/// /summary>
/// param name="parentValueField">上級節點關鍵字段/param>
/// param name="parentValue">上級節點值/param>
/// param name="keyField">本節點關鍵字段/param>
/// param name="textField">顯示出來的文本字段/param>
/// param name="sortString">排序字符串/param>
/// param name="level">樹深度/param>
/// returns>/returns>
private void resetTextField(string parentValueField, string parentValue, string keyField, string textField, string sortString,int level)
{
DataView dv = new DataView(dt, parentValueField + "='" + parentValue + "'", sortString, DataViewRowState.CurrentRows);
int a = dv.Count;
if (dv.Count == 0)
{
return;
}
for (int i = 0; i a; i++)
{
gridline = "";
dv.RowFilter = parentValueField + "='" + parentValue + "'";
dv.Sort = sortString;
getTreeLine(parentValueField, dv[i][parentValueField].ToString(), keyField, dv[i][keyField].ToString(), sortString);
dv.RowFilter = parentValueField + "='" + parentValue + "'";
dv.Sort = sortString;
row = dtOut.NewRow();
for (int c = 0; c dv[i].Row.ItemArray.Length; c++)
{
row[c] = dv[i][c];
}
dtOut.Rows.Add(row);
dtOut.Rows[dtOut.Rows.Count - 1][textField] = gridline + (i == a - 1 ? "┗" : "┣") + dv[i][textField].ToString();
dtOut.Rows[dtOut.Rows.Count - 1]["level"] = level;
resetTextField(parentValueField, dv[i][keyField].ToString(), keyField, textField, sortString,level+1);
}
dv.Dispose();
}
/// summary>
/// 回溯生成樹的連接線
/// /summary>
/// param name="parentValueField">上級節點關鍵字段/param>
/// param name="parentValue">上級節點值/param>
/// param name="keyField">本節點關鍵字段/param>
/// param name="nodeKey">本節點值/param>
/// param name="sortString">排序字符串/param>
/// returns>/returns>
private void getTreeLine(string parentValueField, string parentValue, string keyField, string nodeKey, string sortString)
{
//選擇父層節點
DataView dv = new DataView(dt, keyField + "='" + parentValue + "'", sortString, DataViewRowState.CurrentRows);
if (dv.Count > 0)
{
//選擇父節點同級節點
dv.RowFilter = parentValueField + "='" + dv[0][parentValueField].ToString() + "'";
dv.Sort = sortString;
for (int j = 0; j dv.Count; j++)
{
if (dv[j][keyField].ToString() == parentValue)
{
if (j == dv.Count - 1)
{
gridline = " " + gridline;
}
else
{
gridline = "┃" + gridline;
}
}
}
getTreeLine(parentValueField, dv[0][parentValueField].ToString(), keyField, dv[0][keyField].ToString(), sortString);
}
dv.Dispose();
}
}

HTML示例代碼:
復制代碼 代碼如下:

%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridViewTree.aspx.cs" Inherits="GridViewTree" %>
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head runat="server">
title>生成樹形顯示的GridView/title>
style type="text/css">
body
{
line-height: 16px;
font-size: 14px;
}
td
{
padding: 0 2px;
}
/style>
/head>
body>
form id="form1" runat="server">
table>
tr>
td valign="top">
asp:DropDownList ID="DropDownList1" runat="server">
/asp:DropDownList>
/td>
td>
asp:GridView ID="GridView1" runat="server" BorderWidth="1px" CellPadding="3" GridLines="Vertical"
AutoGenerateColumns="False" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None">
AlternatingRowStyle BackColor="#F7F7F7" />
Columns>
asp:BoundField DataField="ConText" HeaderText="文本" />
asp:BoundField DataField="id" HeaderText="ID">
ItemStyle HorizontalAlign="Right" Width="80px" />
/asp:BoundField>
asp:BoundField DataField="ParentID" HeaderText="父ID">
ItemStyle HorizontalAlign="Right" Width="80px" />
/asp:BoundField>
asp:BoundField DataField="level" HeaderText="Level">
ItemStyle HorizontalAlign="Right" Width="80px" />
/asp:BoundField>
/Columns>
FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
SortedAscendingCellStyle BackColor="#F4F4FD" />
SortedAscendingHeaderStyle BackColor="#5A4C9D" />
SortedDescendingCellStyle BackColor="#D8D8F0" />
SortedDescendingHeaderStyle BackColor="#3E3277" />
/asp:GridView>
/td>
/tr>
/table>
/form>
/body>
/html>

后臺代碼:
復制代碼 代碼如下:

DataTable dt = gvHelper.GetGridViewTreeData(datatable, "ParentID", "1", "ID", "ConText", "ConText asc");
GridView1.DataSource = dt;
GridView1.DataBind();
DropDownList1.Items.Add("");
DropDownList1.AppendDataBoundItems = true;
DropDownList1.DataSource = dt;
DropDownList1.DataTextField = "ConText";
DropDownList1.DataValueField = "ID";
DropDownList1.DataBind();
您可能感興趣的文章:
  • Jquery.TreeView結合ASP.Net和數據庫生成菜單導航條
  • 常用的在數據庫中建立無限級樹形菜單的asp.net代碼
  • asp.net 獲取指定文件夾下所有子目錄及文件(樹形)
  • asp.net實現遞歸方法取出菜單并顯示在DropDownList中(分欄形式)
  • ASP.NET遞歸法求階乘解決思路
  • 遞歸輸出ASP.NET頁面所有控件的類型和ID的代碼
  • asp.net實現DropDownList,TreeView,ListBox的無限極分類目錄樹
  • asp.net TreeView與XML三步生成列表樹
  • Asp.net treeview實現無限級樹實現代碼
  • asp.net TreeView遞歸循環子節點生成樹形菜單實例

標簽:南京 揚州 嘉興 淄博 海南 南京 南昌 臺州

巨人網絡通訊聲明:本文標題《ASP.NET生成樹形顯示的GridView實現思路》,本文關鍵詞  ASP.NET,生成,樹形,顯示,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ASP.NET生成樹形顯示的GridView實現思路》相關的同類信息!
  • 本頁收集關于ASP.NET生成樹形顯示的GridView實現思路的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    精品国产91久久久久久久妲己 | 在线区一区二视频| 欧美日韩国产不卡| 亚洲精品欧美专区| 成年人网站91| 国产精品久久久久久久蜜臀| 麻豆一区二区在线| 欧美tickling网站挠脚心| 国内一区二区在线| 久久精品视频网| 国产一本一道久久香蕉| 色屁屁一区二区| 毛片不卡一区二区| 久久这里只精品最新地址| 国产成人精品1024| 一区二区三区波多野结衣在线观看 | 国产亚洲欧美日韩日本| 激情综合网av| 国产午夜精品久久久久久免费视 | 欧美精品高清视频| 麻豆精品一区二区三区| 精品人在线二区三区| 国产自产2019最新不卡| 亚洲自拍欧美精品| 制服丝袜激情欧洲亚洲| 精品一区二区免费在线观看| 亚洲愉拍自拍另类高清精品| 欧美日韩国产在线播放网站| 美日韩一区二区| 中文字幕av资源一区| 欧美一区三区四区| 粉嫩av一区二区三区粉嫩| 亚洲人精品一区| 国产午夜精品在线观看| 欧美亚洲综合网| 国产一区二区在线电影| 亚洲另类在线一区| 国产精品乱码一区二三区小蝌蚪| 色94色欧美sute亚洲线路二| 免费观看日韩电影| 日韩精品五月天| 国产精品久久久久久妇女6080 | 在线观看日韩高清av| 亚洲chinese男男1069| 精品裸体舞一区二区三区| 色综合久久天天| 久久精品99国产精品日本| 欧美精品一区男女天堂| 一本色道亚洲精品aⅴ| 奇米精品一区二区三区在线观看一| 国产精品色婷婷| 欧美tk—视频vk| 欧美性高清videossexo| 成人国产电影网| 东方欧美亚洲色图在线| 另类专区欧美蜜桃臀第一页| 亚洲欧美偷拍卡通变态| 日韩成人一级片| 五月婷婷综合激情| 亚洲色图清纯唯美| 国产视频一区在线播放| 国产亲近乱来精品视频| 欧美精品一区二区久久久| 欧美日韩成人一区二区| 91精品国产综合久久福利软件| 91亚洲永久精品| 成人听书哪个软件好| 五月综合激情网| 秋霞电影一区二区| 全国精品久久少妇| 日本欧美加勒比视频| 久久精品国产亚洲一区二区三区| 亚洲高清免费在线| 亚洲高清不卡在线| 久久精品99国产国产精| 麻豆91免费观看| 免费成人深夜小野草| 亚洲男人的天堂在线aⅴ视频| 亚洲精品写真福利| 亚洲欧美日韩国产中文在线| 国产精品看片你懂得| 午夜欧美视频在线观看| 午夜私人影院久久久久| 亚洲18色成人| 日韩影院免费视频| 激情综合网天天干| 国产成人午夜高潮毛片| 成人自拍视频在线| 欧美顶级少妇做爰| 日韩精品在线看片z| 欧美一区三区四区| 亚洲女厕所小便bbb| 亚洲福利一区二区| 裸体一区二区三区| 欧美极品美女视频| 亚洲乱码国产乱码精品精小说| 一区二区三区日韩欧美精品 | 制服丝袜成人动漫| 国产精品成人免费在线| 亚洲色图色小说| 日本三级亚洲精品| 蜜桃视频第一区免费观看| 国产成人av电影在线观看| 成人午夜在线免费| 欧美日本高清视频在线观看| 国产精品麻豆欧美日韩ww| 亚洲国产成人高清精品| 国产乱子伦视频一区二区三区 | 香蕉久久夜色精品国产使用方法| 日韩黄色一级片| 丁香亚洲综合激情啪啪综合| 成人久久18免费网站麻豆| 91精品国产综合久久婷婷香蕉| 久久久精品免费网站| 亚洲一区二区三区国产| 精品一区二区在线观看| 日韩一卡二卡三卡四卡| 中文字幕在线观看不卡| 日本成人超碰在线观看| 91老司机福利 在线| 中文字幕在线观看一区| 久久99精品久久久久久动态图| 91免费在线看| 国产女人18毛片水真多成人如厕 | 亚洲最新视频在线观看| 91麻豆成人久久精品二区三区| 日韩三级电影网址| 亚洲女子a中天字幕| 韩国午夜理伦三级不卡影院| 欧美一级欧美三级在线观看 | 久久九九久久九九| 国产一区二区中文字幕| 久久欧美中文字幕| 国产一级精品在线| 国产精品久久久久天堂| av成人动漫在线观看| 日韩美女啊v在线免费观看| 99久久精品免费看| 亚洲综合丁香婷婷六月香| 欧美日韩国产首页| 卡一卡二国产精品| 久久久久国产精品免费免费搜索| 国产激情一区二区三区四区| www国产亚洲精品久久麻豆| 丰满白嫩尤物一区二区| 亚洲三级在线看| 精品视频在线免费观看| 免费高清视频精品| 欧美不卡视频一区| 国产成人av一区| 一级精品视频在线观看宜春院| 欧美在线观看禁18| 另类中文字幕网| 国产欧美日韩一区二区三区在线观看| eeuss影院一区二区三区 | 亚洲欧美日韩国产中文在线| 色婷婷综合激情| 亚洲小说欧美激情另类| 日韩一二在线观看| 成人av高清在线| 亚洲高清久久久| 精品国产免费视频| 91免费国产在线| 久久国产精品99久久人人澡| 中文字幕的久久| 日韩一级大片在线| 91免费在线视频观看| 紧缚捆绑精品一区二区| 有码一区二区三区| 久久精品亚洲精品国产欧美kt∨| 日本精品一区二区三区四区的功能| 免费成人你懂的| 亚洲专区一二三| 亚洲国产经典视频| 欧美岛国在线观看| 欧美三级电影一区| 成人aa视频在线观看| 蜜桃久久久久久久| 午夜不卡在线视频| 亚洲精品国产高清久久伦理二区| 久久久国产一区二区三区四区小说 | 国产日韩欧美精品电影三级在线| 欧美性极品少妇| 99re热视频精品| 国产精华液一区二区三区| 蜜臀久久99精品久久久画质超高清| 亚洲精品国产第一综合99久久 | 日韩国产成人精品| 亚洲乱码中文字幕综合| 欧美经典一区二区| 精品成人a区在线观看| 欧美另类变人与禽xxxxx| av不卡一区二区三区| 成人永久免费视频| 国产激情一区二区三区桃花岛亚洲| 麻豆视频一区二区| 蜜臀91精品一区二区三区| 亚洲大片一区二区三区| 亚洲另类一区二区| 一区二区不卡在线播放|