ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下
千家信息网最后更新 2026年10月31日ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore
这篇文章主要介绍了ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
从数据库获取构造树结构是ExtJS TreePanel的核心技术,常用方法是TreeStroe里配置proxy,这种方式的root成了一个不受控制的节点。
TreeStroe的root实际是一个层叠json数据,大部分情况是直接写一些简单数据,但在实际应用中必定是要从数据库读取的。我的方法是先用Ext.Ajax.request获取root数据形成TreeStroe。定义一个全局的TreeStroe名字是mTreeStore,用Ext.Ajax.request获得root数据。TreeStoreRefresh函数与此类似,将mTreeStore的root换为新值。TreePanel的rootVisible属性必须为true,增加一个节点单击事件显示节点的信息。
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('服务器错误', '数据处理错误原因:\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('服务器错误', '数据处理错误原因:\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: '基础数据字典', 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}
state={1}', record.data.Level, record.data.state); Ext.Msg.alert("节点信息", message);}下面是后台C#代码
定义一个TreeNode类,包含TreePanel节点固有的一些属性,也可以任意扩充,利用这个可以自定义许多附加数据,如我在里面定义Level表示节点的级别。
[Authorize] [RoutePrefix("api/BasicData_API")] public class BasicData_APIController : ApiController { [Route("GetBasicTablesTreeSource")] public HttpResponseMessage GetBasicTablesTreeSource(string condition = null) { List lstF = new List(); 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 = "基础数据字典", 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 children { get; set; } } 在NodeClick函数中断可以监视到更多的信息:
最后的运行效果:
然后更改数据表里的数据,点"刷新"就实现了TreePanel节点的刷新。
感谢你能够认真阅读完这篇文章,希望小编分享的"ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
数据
节点
篇文章
错误
信息
函数
原因
基础
字典
实际
属性
数据处理
数据库
方法
更多
服务器
处理
服务
事件
代码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
喔噻互联网科技有限公司
云之行互联网科技
高科技互联网
互联网科技的发展
致聘互联网科技
善班互联网科技有限公司
电子科技大学互联网
新浪科技互联网
联恩商钥互联网科技有限公司
互联网科技生活的内容
玖二柒互联网科技公司待遇
团飞科技与伯堂互联网服务平台
昭通云南众福互联网科技有限公司
移动互联网科技股
湖南一路畅行互联网科技
互联网金融科技名词解释
科技互联网海报
世界互联网科技成果奖
广西科技产业互联网是什么
互联网络科技
高科技互联网
科技服务与互联网
美国互联网科技
上海万想互联网科技
天扬科技互联网广告
中国科技互联网公司收入
云鲸互联网络科技有限公司
上海互联网科技园景观
瑞安市蟠桃会互联网科技有限公司