<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 22:41:46
        文檔

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

        ASP.NET生成樹形顯示的GridView實現思路:目的:生成樹形結構的表格數據(EasyUI也有TreeGrid,此處只是提供一個思路),可以擴展單擊展開/收縮節點 圖例: 類代碼: 代碼如下:using System; using System.Data; /// <summary> ///GridViewHelper 的摘要說明 ///
        推薦度:
        導讀ASP.NET生成樹形顯示的GridView實現思路:目的:生成樹形結構的表格數據(EasyUI也有TreeGrid,此處只是提供一個思路),可以擴展單擊展開/收縮節點 圖例: 類代碼: 代碼如下:using System; using System.Data; /// <summary> ///GridViewHelper 的摘要說明 ///

        目的:生成樹形結構的表格數據(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();

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        ASP.NET生成樹形顯示的GridView實現思路:目的:生成樹形結構的表格數據(EasyUI也有TreeGrid,此處只是提供一個思路),可以擴展單擊展開/收縮節點 圖例: 類代碼: 代碼如下:using System; using System.Data; /// <summary> ///GridViewHelper 的摘要說明 ///
        推薦度:
        標簽: 顯示 生成 方法
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 精品无码一区二区三区亚洲桃色| 国产成人免费爽爽爽视频| 久久久久久亚洲AV无码专区| 一个人看的在线免费视频| 亚洲&#228;v永久无码精品天堂久久| 久久久久亚洲AV综合波多野结衣| 亚洲午夜电影一区二区三区| 成人精品国产亚洲欧洲| 国产午夜鲁丝片AV无码免费| 亚洲国产精品久久久久秋霞影院 | 亚洲成a人片在线网站| 57pao国产成永久免费视频| 亚洲高清无在码在线电影不卡| 最近中文字幕大全免费视频| 亚洲中文无码a∨在线观看| 亚洲av无码偷拍在线观看| 破了亲妺妺的处免费视频国产| 亚洲国产综合专区电影在线| 深夜久久AAAAA级毛片免费看| 亚洲精品无码专区2| 亚洲国产午夜精品理论片在线播放 | 亚洲精品亚洲人成在线播放| 日韩人妻无码精品久久免费一| 亚洲精品乱码久久久久久蜜桃 | 国产又长又粗又爽免费视频 | 黄网站色成年片大免费高清| 99久久久国产精品免费无卡顿| 亚洲精品综合一二三区在线| 我的小后妈韩剧在线看免费高清版 | 亚洲美女大bbbbbbbbb| 成人毛片视频免费网站观看| 黄床大片30分钟免费看| 亚洲Av综合色区无码专区桃色| 久久综合AV免费观看| 男女交性无遮挡免费视频| 亚洲AV无码一区二区二三区入口 | 亚洲真人日本在线| 4虎1515hh永久免费| 美女视频免费看一区二区| 亚洲AV无码国产精品麻豆天美| 欧美男同gv免费网站观看|