欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > Asp.net下拉樹的實現(xiàn)過程

Asp.net下拉樹的實現(xiàn)過程

熱門標簽:南昌自動外呼系統(tǒng)線路 辦公用地圖標注網(wǎng)點怎么操作 西寧電銷外呼系統(tǒng)公司 寧德防封版電銷卡 安陸市地圖標注app 上海市三維地圖標注 海東防封電銷卡 云南外呼系統(tǒng)代理 聊城智能電銷機器人電話

場景描述:某個公司有多個部門并且部門存在子部門,通過一個下拉框選取多個部門,但是如果某個部門的子部門被全部選擇,則只取該部門,而忽略子部門。(葉子節(jié)點全被選中時,只取父節(jié)點)

知識點:ComboTree、一般處理程序、遞歸、Json

效果如圖

 

數(shù)據(jù)庫表設計:unit_main

 

節(jié)點類設計:

 public class Unit
 {
 public decimal id { get; set; }
 public string text { get; set; }
 public string state { get; set; }
 public ListUnit> children { get; set; }
 public Unit ()
 {
 this.children = new ListUnit>();
 this.state = "open";
 }
 }


處理類設計:

public class UnitComponent
 {
 ExeceteOralceSqlHelper SqlHelper= new ExeceteOralceSqlHelper();//數(shù)據(jù)庫處理類
 public UnitParent GetUnit()
 {
  Unit rootUnit = new Unit();
  rootUnit.id = 1000;
  rootUnit.text = "BO API";
  rootUnit.children = GetUnitList(0);
  UnitRecursive(rootUnit.children);
  return rootUnit;
 }

 /// summary>
 /// 遞歸查詢部門
 /// /summary>
 /// param name="units">/param>
 private void UnitRecursive(ListUnit> units)
 {
  foreach (var item in units)
  {
  item.children = GetUnitList(item.id);
  if (item.children != null  item.children.Count > 0)
  {
   item.state = "closed";
   UnitRecursive(item.children);
  }
  }
 }

 /// summary>
 /// 通過parentID獲取所有子部門
 /// /summary>
 /// param name="parentID">父id/param>
 /// returns>返回Unit集合/returns>
 private ListUnit> GetUnitList(decimal parentID)
 {
  ListUnit> unitLst = new ListUnit>();
  string sql = string.Format("select hh.unit_id,hh.unit_name from unit_main hh where hh.parent_id={0}", parentID);
  DataTable dt = SqlHelper.ExecuteDataTable(sql);//返回DataTable方法
  if (dt != null  dt.Rows.Count > 0)
  {
  for (int i = 0; i  dt.Rows.Count; i++)
  {
   Unit dtup = new Unit()
   {
   id = Convert.ToInt32(dt.Rows[i]["unit_id"]),
   text = dt.Rows[i]["unit_name"].ToString()
   };
   unitLst.Add(dtup);
  }
  }
  return unitLst;
 }
}

下面,新建web應用程序-添加-一般處理程序,其中JavaScriptSerializer你可以換為NewtonSoft來處理

public void ProcessRequest(HttpContext context)
{
 JavaScriptSerializer js = new JavaScriptSerializer();
 context.Response.ContentType = "application/json";
 UnitComponent uc = new SynUser.UnitComponent();
 var unit = uc.GetUnit();
 context.Response.Write("[" + js.Serialize(unit) + "]");
}

現(xiàn)在我們測試一下這個一般處理程序,如果像圖片一樣返回了結果說明正確:

好了,部門結構的數(shù)據(jù)準備好了,下開始寫前臺代碼:

新建一個aspx頁面,拖一個控件

asp:TextBox ID="tbUnit" runat="server" Width="280px">/asp:TextBox>

引入相應的js,在script加入代碼

$('#tbUnit').combotree({
 url: , '/unit.ashx'
 cascadeCheck: true,
 placeholder: "請選擇部門",
 method: 'get',
 required: true,
 multiple: true,
 onChange: function (newValue, oldValue) {
 computeunit();
 },
 onLoadSuccess: function (node, data) {
    
 }
});

 

不知你有沒有發(fā)現(xiàn)我選中的是應用管理服務中心、xiaobo、tech三個節(jié)點,但是xiaobo、tech是應用服務中心的葉子節(jié)點。需求要求,我們只需獲取應用管理服務中心節(jié)點,不需要在獲取xiaobo、tech。

所有要通過js遍歷tree來獲取我們想要的節(jié)點,computerunit方法是我們想要的。

思路為:遞歸獲取被選的子節(jié)點,然后與所選的節(jié)點作差集,最后的得到的就是被選的節(jié)點(不包括全選的子節(jié)點)

function computeunit() {
  var arr = new Array();
  var selectstr = $("#tbUnit").combotree("getValues").toString();
  var select = selectstr.split(",");
  var t = $('#tbUnit').combotree('tree'); // get the tree object
  var n = t.tree('getChecked'); // get selected node
  unitrecursive(t, n, arr);
  alert(subtraction(select, arr).join(","));
 }

 /*計算數(shù)組差集
 **返回結果數(shù)組
 */
 function subtraction(arr1, arr2) {
  var res = [];
  for (var i = 0; i  arr1.length; i++) {
  var flag = true;
  for (var j = 0; j  arr2.length; j++) {
   if (arr2[j] == arr1[i]) {
   flag = false;
   }
  }
  if (flag) {
   res.push(arr1[i]);
  }
  }
  return res;
 }

 /*獲取被選父節(jié)點的子項目
 **返回結果arr里
 */
 function unitrecursive(t, nodes, arr) {
  for (var i = 0; i  nodes.length; i++) {
  if (!t.tree('isLeaf', nodes[i].target)) {
   var nn = t.tree('getChildren', nodes[i].target);
   for (var j = 0; j  nn.length; j++) {
   arr.push(nn[j].id);
   }
   unitrecursive(t, nn, arr);
  }
  }
 }

以上就是ASP.NET實現(xiàn)下拉樹(Easy UI ComboTree)的全部思路,希望對大家的學習有所幫助。

您可能感興趣的文章:
  • 適用與firefox ASP.NET無刷新二級聯(lián)動下拉列表
  • ASP.NET 2.0寫無限級下拉菜單
  • asp.net DropDownList 三級聯(lián)動下拉菜單實現(xiàn)代碼
  • asp.net 下拉列表無級數(shù)據(jù)綁定實現(xiàn)代碼
  • asp.net 實現(xiàn)下拉框只讀功能
  • ASP.NET C#生成下拉列表樹實現(xiàn)代碼
  • asp.net中js+jquery添加下拉框值和后臺獲取示例
  • asp.net mvc下拉框Html.DropDownList 和DropDownListFor的常用方法
  • asp.net使用DataGridTree實現(xiàn)下拉樹的方法
  • ASP.NET多彩下拉框開發(fā)實例
  • ASP.NET實現(xiàn)級聯(lián)下拉框效果實例講解

標簽:衢州 汕尾 青海 南寧 洛陽 贛州 崇左

巨人網(wǎng)絡通訊聲明:本文標題《Asp.net下拉樹的實現(xiàn)過程》,本文關鍵詞  Asp.net,下拉,樹,的,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Asp.net下拉樹的實現(xiàn)過程》相關的同類信息!
  • 本頁收集關于Asp.net下拉樹的實現(xiàn)過程的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    色婷婷综合中文久久一本| 久久蜜桃一区二区| 玉足女爽爽91| 99re这里只有精品首页| 美女视频久久久| 国产精品日产欧美久久久久| 激情六月婷婷久久| 永久免费毛片在线观看| 久久久99精品久久| 国产麻豆精品一区二区| 东京热无码av男人的天堂| 久久午夜羞羞影院免费观看| 麻豆精品一区二区三区| 中文字幕在线观看免费高清| 精品国产欧美一区二区| 精品一区二区影视| 国产欧美小视频| 国产精品欧美一区二区三区| 成人小视频在线| 91福利在线播放| 一区二区三区毛片| 好男人香蕉影院| 精品美女一区二区| 国产一区视频导航| 久久免费看少妇高潮v片特黄 | 国产精品300页| 欧美大片在线观看一区| 久久精品久久精品| 日韩av网站在线播放| 日韩一区欧美一区| 免费黄色在线播放| 日韩欧美另类在线| 国产一区二区三区在线观看精品| 国产精品suv一区二区88| 亚洲三级小视频| 午夜男人的天堂| 久久综合九色欧美综合狠狠| 国产99久久久国产精品| 欧美在线观看视频一区二区三区| 午夜精品一区二区三区免费视频| 精品无码国产污污污免费网站 | 成人性视频免费网站| 欧美主播一区二区三区| 日本系列欧美系列| 日韩一卡二卡在线观看| 一区二区三区在线视频免费观看| 国产美女视频免费观看下载软件| 26uuu国产日韩综合| 91精品国产高清一区二区三区| 美女脱光内衣内裤视频久久影院| 2014亚洲天堂| 亚洲国产精品久久人人爱蜜臀 | 可以直接看的黄色网址| 亚洲国产日日夜夜| 蜜臀久久99精品久久久久久| 中文字幕一区二区三区在线不卡 | 国内自拍偷拍视频| 久久综合色8888| 99re66热这里只有精品3直播| 日韩一区二区电影| www.欧美精品一二区| 欧美一区二区三区喷汁尤物| 国产成人亚洲综合a∨婷婷 | av激情综合网| 日韩精品一区二区三区四区| 成人亚洲精品久久久久软件| 日韩欧美国产wwwww| kk眼镜猥琐国模调教系列一区二区| 宅男噜噜噜66一区二区66| 福利一区二区在线| 欧美一区二区三区系列电影| 处破女av一区二区| 日韩午夜激情免费电影| 不卡视频免费播放| 精品日韩欧美一区二区| 94色蜜桃网一区二区三区| 日韩欧美激情四射| 中文字幕乱妇无码av在线| 久久婷婷国产综合精品青草| 自拍视频第一页| 国产精品乱码人人做人人爱| 人妻熟女aⅴ一区二区三区汇编| 成人免费在线播放视频| 一本色道久久综合亚洲精品图片| 综合色天天鬼久久鬼色| 国产精品情侣呻吟对白视频| 亚洲va天堂va国产va久| 色综合天天做天天爱| 精品在线观看视频| 91精品国产色综合久久ai换脸| eeuss鲁片一区二区三区在线观看| 精品国精品自拍自在线| 蜜臀av粉嫩av懂色av| 最近日韩中文字幕| 污污视频网站在线免费观看| 天天av天天翘天天综合网色鬼国产 | 久久精品无码一区| 婷婷激情综合网| 欧美午夜片在线看| 成人av电影在线播放| 国产日韩欧美一区二区三区乱码 | 欧美大白屁股肥臀xxxxxx| 韩国三级在线看| 日韩一区有码在线| 日本高清不卡免费| 国产精品一区免费视频| 2020国产精品久久精品美国| 可以直接看的无码av| 日韩精品国产精品| 欧美日本乱大交xxxxx| 久久久久亚洲av无码麻豆| 亚洲欧美日韩精品久久久久| 手机av在线看| 国产成人av影院| 国产精品区一区二区三| 亚洲欧美综合7777色婷婷| 国产一区二区三区久久久| 精品久久人人做人人爽| 中文字幕av网址| 免费成人在线影院| 欧美r级在线观看| 蜜桃精品一区二区| 美女网站一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美老熟妇乱大交xxxxx | 欧美日韩三级一区| 国产成人av片| 亚洲 欧美综合在线网络| 欧美日本一区二区三区四区| 波多野吉衣在线视频| 亚洲成年人影院| 91精品国产综合久久精品app| 久久精品女同亚洲女同13| 日日骚欧美日韩| 精品国产免费人成在线观看| 亚洲区自拍偷拍| 国产精品中文字幕一区二区三区| 国产午夜精品一区二区三区视频 | 中文字幕一区二区三区色视频 | 欧美做受喷浆在线观看| 日韩电影免费一区| 26uuu另类欧美亚洲曰本| 美国美女黄色片| 成人三级伦理片| 一区二区三区国产精华| 欧美肥妇毛茸茸| 精品少妇人妻一区二区黑料社区| 国产一区在线不卡| 最新高清无码专区| 在线不卡a资源高清| jizz欧美性20| 国产成人免费视频网站| 中文字幕一区二区在线观看| 日本精品一区二区三区高清| 苍井空张开腿实干12次| 伦理电影国产精品| 国产精品萝li| 欧美日韩国产首页在线观看| 人妻丰满熟妇aⅴ无码| 国产成人综合自拍| 一区二区三区四区视频精品免费 | 亚洲男人的天堂在线观看| 欧美日韩激情一区| 国产肥白大熟妇bbbb视频| 国产不卡视频在线观看| 亚洲综合在线观看视频| 日韩欧美一卡二卡| 青青青视频在线免费观看| 99久免费精品视频在线观看| 午夜欧美视频在线观看| 久久精品人人爽人人爽| 日本黄色小说视频| 中文字幕三级电影| 国产精品亚洲专一区二区三区 | 1区2区3区国产精品| 欧美三级视频在线观看| 成人免费无遮挡无码黄漫视频| 成人短视频下载| 日韩精品乱码av一区二区| 国产精品无遮挡| 欧美日韩在线直播| 天堂网av2018| 日韩av无码一区二区三区不卡 | 日本道中文字幕| 国产美女精品人人做人人爽| 亚洲一区二区三区精品在线| 久久精品男人天堂av| 欧美视频在线不卡| 91动漫免费网站| 黄色在线免费播放| 大白屁股一区二区视频| 人人爽香蕉精品| 亚洲激情六月丁香| 欧美激情综合五月色丁香| 欧美放荡的少妇| 色噜噜狠狠成人网p站| 日韩一区二区a片免费观看| 女人扒开腿免费视频app| 国产麻豆视频一区二区| 日韩电影在线免费观看|