<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關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題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關(guān)鍵字專題關(guān)鍵字專題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
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        ASP.NET MVC異步獲取和刷新ExtJS6 TreeStore

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:36:12
        文檔

        ASP.NET MVC異步獲取和刷新ExtJS6 TreeStore

        ASP.NET MVC異步獲取和刷新ExtJS6 TreeStore:從數(shù)據(jù)庫獲取構(gòu)造樹結(jié)構(gòu)是ExtJS TreePanel的核心技術(shù),常用方法是TreeStroe里配置proxy,這種方式的root成了一個不受控制的節(jié)點。 TreeStroe的root實際是一個層疊json數(shù)據(jù),大部分情況是直接寫一些簡單數(shù)據(jù),但在實際應(yīng)用中必定是要從數(shù)據(jù)庫讀取的。我的方法
        推薦度:
        導(dǎo)讀ASP.NET MVC異步獲取和刷新ExtJS6 TreeStore:從數(shù)據(jù)庫獲取構(gòu)造樹結(jié)構(gòu)是ExtJS TreePanel的核心技術(shù),常用方法是TreeStroe里配置proxy,這種方式的root成了一個不受控制的節(jié)點。 TreeStroe的root實際是一個層疊json數(shù)據(jù),大部分情況是直接寫一些簡單數(shù)據(jù),但在實際應(yīng)用中必定是要從數(shù)據(jù)庫讀取的。我的方法

        從數(shù)據(jù)庫獲取構(gòu)造樹結(jié)構(gòu)是ExtJS TreePanel的核心技術(shù),常用方法是TreeStroe里配置proxy,這種方式的root成了一個不受控制的節(jié)點。

        TreeStroe的root實際是一個層疊json數(shù)據(jù),大部分情況是直接寫一些簡單數(shù)據(jù),但在實際應(yīng)用中必定是要從數(shù)據(jù)庫讀取的。我的方法是先用Ext.Ajax.request獲取root數(shù)據(jù)形成TreeStroe。定義一個全局的TreeStroe名字是mTreeStore,用Ext.Ajax.request獲得root數(shù)據(jù)。TreeStoreRefresh函數(shù)與此類似,將mTreeStore的root換為新值。TreePanel的rootVisible屬性必須為true,增加一個節(jié)點單擊事件顯示節(jié)點的信息。

        var mTreeStore = null;
        Ext.Ajax.request({
         async: false,
         url: '/api/BasicData_API/GetBasicTablesTreeSource',
         method: 'get',
         success: function (response, options)
         {
         var TreeRoot = Ext.decode(response.responseText);
         mTreeStore = Ext.create('Ext.data.TreeStore',
         {
         root: TreeRoot
         });
         },
         failure: function (response, options)
         {
         //var responseArray = Ext.decode(response.responseText);
         Ext.Msg.alert('服務(wù)器錯誤', '數(shù)據(jù)處理錯誤原因:\n\r' + response.responseText);
         }
        });
        
        function TreeStoreRefresh()
        {
         Ext.Ajax.request({
         async: false,
         url: '/api/BasicData_API/GetBasicTablesTreeSource',
         method: 'get',
         success: function (response, options)
         {
         var TreeRoot = Ext.decode(response.responseText);
         if (mTreeStore != null)
         {
         mTreeStore.setRoot(TreeRoot);
         }
         },
         failure: function (response, options)
         {
         //var responseArray = Ext.decode(response.responseText);
         Ext.Msg.alert('服務(wù)器錯誤', '數(shù)據(jù)處理錯誤原因:\n\r' + response.responseText);
         }
         });
        }
        
        Ext.define('TreeToolbarCls', {
         extend: 'Ext.toolbar.Toolbar',
         padding:'0 0 0 0',
         items: [{
         text: '刷新',
         iconCls: 'refresh',
         handler: TreeStoreRefresh,
         height: 30,
         width: 65
         }]
        });
        
        Ext.define('U1TreeCls',
        {
         extend: 'Ext.tree.Panel',
         xtype: 'U1Tree_xtype',
         //title: '基礎(chǔ)數(shù)據(jù)字典',
         rootVisible: true,
         width: 300,
         store: mTreeStore,
         scrollable: true,
         tbar:Ext.create('TreeToolbarCls'),
         listeners:
         {
         itemclick: NodeClick
         }
        });
        
        function NodeClick(node, record, item, index, e, eOpts)
        {
         if (typeof (record.data) == "undefined")
         {
         return;
         }
         var message = Ext.String.format('Level={0}<br/>state={1}', record.data.Level, record.data.state);
         Ext.Msg.alert("節(jié)點信息", message);
        }
        

        下面是后臺C#代碼

        定義一個TreeNode類,包含TreePanel節(jié)點固有的一些屬性,也可以任意擴(kuò)充,利用這個可以自定義許多附加數(shù)據(jù),如我在里面定義Level表示節(jié)點的級別。

         [Authorize]
         [RoutePrefix("api/BasicData_API")]
         public class BasicData_APIController : ApiController
         {
         [Route("GetBasicTablesTreeSource")]
         public HttpResponseMessage GetBasicTablesTreeSource(string condition = null)
         {
         List<TreeNode> lstF = new List<TreeNode>();
         ZydAdonet z = ZydAdonet.Instance();
         string s1 = "select TableName,title from BaseDataTables order by TableName";
         string sqltext = s1;
         DataTable dt1;
         string ErrMes;
         z.Sql2DTReadOnly(s1, out dt1, null, out ErrMes);
         TreeNode tnd;
         foreach (DataRow drx in dt1.Rows)
         {
         tnd = new TreeNode
         {
         id = drx["TableName"].ToString(),
         text = drx["title"].ToString(),
         Level = 1,
         iconCls = "table_6",
         state = drx["TableName"].ToString() + " OK",
         leaf = true
         };
         lstF.Add(tnd);
         }
         TreeNode root = new TreeNode
         {
         text = "基礎(chǔ)數(shù)據(jù)字典",
         expanded = false,
         iconCls = "folder_close",
         Level = 0,
         state = "RootOfTree",
         leaf = true
         };
         if (lstF.Count > 0)
         {
         root.expanded = true;
         root.leaf = false;
         root.iconCls = "folder_open";
         root.children = lstF;
         }
        
         string JsonStr;
         JsonStr = JsonConvert.SerializeObject(root);
         HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value");
         response.Content = new StringContent(JsonStr, Encoding.GetEncoding("UTF-8"), "application/json");
         response.Headers.CacheControl = new CacheControlHeaderValue()
         {
         MaxAge = TimeSpan.FromMinutes(10)
         };
         return response;
         }
         }
        
         internal class TreeNode
         {
         public string id { get; set; }
         public string text { get; set; }
         public string iconCls { get; set; }
         public string state { get; set; }
         public bool leaf { get; set; }
         public int Level { get; set; }
         public bool expanded { get; set; }
         public List<TreeNode> children { get; set; }
         }
        
        

        在NodeClick函數(shù)中斷可以監(jiān)視到更多的信息:

        最后的運(yùn)行效果:

        然后更改數(shù)據(jù)表里的數(shù)據(jù),點“刷新”就實現(xiàn)了TreePanel節(jié)點的刷新。

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

        文檔

        ASP.NET MVC異步獲取和刷新ExtJS6 TreeStore

        ASP.NET MVC異步獲取和刷新ExtJS6 TreeStore:從數(shù)據(jù)庫獲取構(gòu)造樹結(jié)構(gòu)是ExtJS TreePanel的核心技術(shù),常用方法是TreeStroe里配置proxy,這種方式的root成了一個不受控制的節(jié)點。 TreeStroe的root實際是一個層疊json數(shù)據(jù),大部分情況是直接寫一些簡單數(shù)據(jù),但在實際應(yīng)用中必定是要從數(shù)據(jù)庫讀取的。我的方法
        推薦度:
        標(biāo)簽: ASP.NET tree extjs
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲国产成人久久综合一| 激情无码亚洲一区二区三区 | 亚洲AV日韩精品久久久久久 | 一级毛片免费毛片毛片| 亚洲免费视频观看| 国产99视频精品免费视频7| 亚洲成色999久久网站| 男的把j放进女人下面视频免费| 在线观看免费毛片| 亚洲一区二区三区高清| 国产成人亚洲午夜电影| 亚欧色视频在线观看免费| 亚洲卡一卡2卡三卡4麻豆| 丝袜捆绑调教视频免费区| 免费无码又爽又刺激高潮的视频| 亚洲国产精品久久久久婷婷软件 | 永久在线毛片免费观看| 亚洲国产精品久久久久秋霞小 | 亚洲高清资源在线观看| 国产亚洲精品美女| 亚洲毛片不卡av在线播放一区| 亚洲天然素人无码专区| 在线免费观看国产| 久久精品国产亚洲AV麻豆~| 一级做性色a爰片久久毛片免费| 国产亚洲色婷婷久久99精品91| 免费亚洲视频在线观看| 亚洲综合色视频在线观看| 国内成人精品亚洲日本语音| 精品亚洲成α人无码成α在线观看| a级毛片无码免费真人久久| 国产亚洲av片在线观看18女人| 免费一级毛片在线播放视频| 亚洲日韩欧洲无码av夜夜摸| 国产精品免费视频观看拍拍| 亚洲人成电影网站国产精品 | 国产大片线上免费观看| 亚洲精品中文字幕乱码影院 | 热久久精品免费视频| aa在线免费观看| 亚洲AV无码一区二区三区DV|