<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
        主站蜘蛛池模板: 久久青草国产免费观看| 182tv免费视频在线观看| 午夜小视频免费观看| 亚洲校园春色另类激情| 噼里啪啦电影在线观看免费高清| 亚洲精品一卡2卡3卡三卡四卡| 91免费国产精品| 污视频网站免费在线观看| 国产一区视频在线免费观看 | 亚洲综合久久成人69| 6080午夜一级毛片免费看6080夜福利 | 在线美女免费观看网站h| 亚洲综合色丁香麻豆| 91情侣在线精品国产免费| 亚洲av成人一区二区三区在线播放| 国产免费观看青青草原网站| 色一情一乱一伦一视频免费看| 国产日产亚洲系列最新| 日本一道本不卡免费| 亚洲精品电影天堂网| 精品久久久久久久免费加勒比| www免费插插视频| 中文字幕亚洲第一在线| 毛片网站免费在线观看| 日本黄页网址在线看免费不卡| 久久精品国产精品亚洲精品| 最新欧洲大片免费在线| 特级毛片全部免费播放| 亚洲AV福利天堂一区二区三| 中国在线观看免费国语版| 牛牛在线精品观看免费正| 午夜亚洲AV日韩AV无码大全| 在线免费观看一级毛片| 久久最新免费视频| 激情内射亚洲一区二区三区爱妻 | 久久久国产精品无码免费专区| 成人免费大片免费观看网站| 亚洲成a∧人片在线观看无码 | 久久久久国产成人精品亚洲午夜 | 波多野结衣在线免费视频| 麻豆69堂免费视频|