婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

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

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

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

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

知識點(diǎn):ComboTree、一般處理程序、遞歸、Json

效果如圖

 

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

 

節(jié)點(diǎn)類設(shè)計(jì):

 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";
 }
 }


處理類設(shè)計(jì):

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應(yīng)用程序-添加-一般處理程序,其中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)在我們測試一下這個一般處理程序,如果像圖片一樣返回了結(jié)果說明正確:

好了,部門結(jié)構(gòu)的數(shù)據(jù)準(zhǔn)備好了,下開始寫前臺代碼:

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

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

引入相應(yīng)的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)我選中的是應(yīng)用管理服務(wù)中心、xiaobo、tech三個節(jié)點(diǎn),但是xiaobo、tech是應(yīng)用服務(wù)中心的葉子節(jié)點(diǎn)。需求要求,我們只需獲取應(yīng)用管理服務(wù)中心節(jié)點(diǎn),不需要在獲取xiaobo、tech。

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

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

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(","));
 }

 /*計(jì)算數(shù)組差集
 **返回結(jié)果數(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é)點(diǎn)的子項(xiàng)目
 **返回結(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實(shí)現(xiàn)下拉樹(Easy UI ComboTree)的全部思路,希望對大家的學(xué)習(xí)有所幫助。

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

標(biāo)簽:衢州 汕尾 青海 南寧 洛陽 贛州 崇左

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net下拉樹的實(shí)現(xiàn)過程》,本文關(guān)鍵詞  Asp.net,下拉,樹,的,實(shí)現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Asp.net下拉樹的實(shí)現(xiàn)過程》相關(guān)的同類信息!
  • 本頁收集關(guān)于Asp.net下拉樹的實(shí)現(xiàn)過程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    毛片av一区二区| 国产精品第13页| 久久天天做天天爱综合色| 国产三级精品视频| 午夜精品一区二区三区三上悠亚| 久久99热狠狠色一区二区| 色呦呦一区二区三区| 国产精品成人网| 国产精品一二三四五| 欧美午夜精品电影| 国产精品电影一区二区| 国产91精品一区二区麻豆网站 | 精品国产乱码久久久久久蜜臀| 夜夜夜精品看看| 欧美亚洲综合在线| 一区二区三区**美女毛片| 色妹子一区二区| 国产精品麻豆视频| 白白色亚洲国产精品| 中文字幕亚洲在| 99久久精品国产观看| 亚洲一区二区3| 日韩欧美国产电影| 波多野结衣中文字幕一区| 椎名由奈av一区二区三区| 欧美三区在线观看| 一区二区三区中文字幕| 91成人在线精品| 国模一区二区三区白浆| 日韩高清不卡在线| 国产欧美一区二区三区在线看蜜臀| 国产精品一区二区在线播放| 亚洲乱码中文字幕| 2021久久国产精品不只是精品| 成人黄页毛片网站| 美女一区二区视频| 亚洲国产成人av网| 国产精品污污网站在线观看| 日韩视频一区二区三区在线播放| 亚洲国产精品t66y| 91麻豆精品国产自产在线观看一区| 午夜电影网一区| 成人v精品蜜桃久久一区| 国产在线一区二区综合免费视频| 国产成人精品一区二区三区四区 | 国产精品女主播av| 亚洲乱码一区二区三区在线观看| 91国在线观看| 91亚洲国产成人精品一区二区三 | 国产日韩欧美精品在线| 久久精品夜夜夜夜久久| 欧美色网站导航| 日韩成人精品在线| 亚洲三级免费电影| 欧美日韩在线免费视频| 亚洲乱码日产精品bd| 国产精品福利在线播放| 一区二区三区在线播| 五月婷婷激情综合网| 日韩电影网1区2区| 国产麻豆成人精品| 91论坛在线播放| 91精品国产综合久久精品性色| 欧美一区日本一区韩国一区| 久久综合国产精品| 一区二区三区不卡视频| 国产一区亚洲一区| 欧洲亚洲精品在线| 久久精品亚洲一区二区三区浴池| 亚洲欧美aⅴ...| 国产一区二区三区四| 日韩精品一区在线| 亚洲视频在线一区观看| 久久久精品tv| 亚洲一区二区三区三| 国产成人精品网址| 日韩欧美视频在线| 亚洲va在线va天堂| 欧美影视一区在线| 亚洲卡通动漫在线| 成人午夜av电影| 国产精品黄色在线观看| 亚洲伊人伊色伊影伊综合网| 久草中文综合在线| 91传媒视频在线播放| 日韩美女视频19| 91玉足脚交白嫩脚丫在线播放| 国产免费观看久久| 国产成人免费视| 国产精品久久久久久久久晋中 | 国产成人免费视频精品含羞草妖精 | 亚洲成a人v欧美综合天堂下载| 成人黄色一级视频| 亚洲一区二区三区四区不卡| 欧美在线观看你懂的| 男男视频亚洲欧美| 久久久99久久| 在线观看不卡一区| 婷婷综合另类小说色区| 精品粉嫩超白一线天av| 成人aa视频在线观看| 亚洲一区二区在线免费看| 日韩欧美国产一区在线观看| 成人美女在线观看| 奇米色一区二区| 亚洲乱码中文字幕| 亚洲国产综合在线| 91麻豆精品国产91久久久| 粉嫩av一区二区三区在线播放 | 日韩欧美的一区二区| 国产成人免费9x9x人网站视频| 国产精品乱子久久久久| 91精品国产色综合久久| 欧美午夜寂寞影院| 色噜噜狠狠一区二区三区果冻| 国产一区在线不卡| 久久精品视频一区二区三区| 日韩一区精品字幕| 亚洲电影欧美电影有声小说| 中文字幕精品在线不卡| 日韩你懂的在线播放| 欧美性大战xxxxx久久久| 成人精品视频一区| 国产高清成人在线| 国产精品夜夜嗨| 国产sm精品调教视频网站| 国产综合色产在线精品| 国产大陆亚洲精品国产| 国产自产2019最新不卡| 久久国产生活片100| 国产精品自拍av| 99热这里都是精品| av一区二区不卡| 日本道色综合久久| 69堂精品视频| 国产精品麻豆久久久| 亚洲一线二线三线久久久| 石原莉奈在线亚洲三区| 日韩综合小视频| 国内成人精品2018免费看| 福利一区在线观看| 欧美性大战xxxxx久久久| 中文字幕免费不卡| 亚洲不卡一区二区三区| 国产精品一区二区不卡| 欧美少妇一区二区| 精品电影一区二区三区| 国产麻豆午夜三级精品| 日本欧美一区二区三区| 高清成人免费视频| 久久一夜天堂av一区二区三区| 一区在线播放视频| 国产一区不卡在线| 欧美一二区视频| 免费人成网站在线观看欧美高清| 不卡的看片网站| 欧美国产精品久久| 国产精品一区久久久久| 欧美一区二区三区视频免费| 亚洲电影在线播放| 91精品福利视频| 亚洲伦在线观看| 91在线观看免费视频| 一区二区三区四区不卡视频| 日本视频一区二区| 在线观看91精品国产麻豆| 日韩成人一级片| 91精品国产色综合久久久蜜香臀| 亚洲黄色免费网站| 欧美日韩不卡一区| 美女视频一区在线观看| 欧美国产日韩在线观看| 波多野结衣中文字幕一区| 亚洲成人综合网站| 日韩欧美国产高清| 99久久国产综合精品麻豆| 亚洲国产日韩精品| 久久久av毛片精品| 国产精品自在欧美一区| 国产精品国产三级国产专播品爱网| 色综合久久九月婷婷色综合| 蜜乳av一区二区| 亚洲视频一区在线| 久久久影院官网| 欧美一区二区三区免费观看视频| 狠狠色狠狠色综合日日91app| 亚洲成人激情综合网| 国产欧美日韩亚州综合| 这里是久久伊人| 欧美精三区欧美精三区| 91免费看`日韩一区二区| 久久草av在线| 日本成人在线不卡视频| 亚洲欧美日韩国产一区二区三区 | 中文字幕中文字幕一区二区| 日韩精品专区在线影院重磅| 欧美人与性动xxxx| 欧美精选一区二区| 日韩欧美中文一区| 色丁香久综合在线久综合在线观看 |