ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍了ASP.NET MVC如何异步获取和刷新ExtJS6 TreeStore,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下
千家信息网最后更新 2025年02月23日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) { ListlstF = 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安全错误
数据库的锁怎样保障安全
服务器机房安全操作规程
籽岷解说我的世界服务器
浙江嘉兴服务器租赁高档虚拟主机
pp初始化数据库失败
客户怎么访问服务器数据库
重庆大学数据库实验10
服务器主机的第二显示器怎么连接
小学网络安全班会简报
湖北工业软件开发需要多少钱
软件开发和测试环境定期维护
csgo无法理解的容易服务器
云服务器 svn
河南潮流软件开发设施服务标准
东台app软件开发
桦南app软件开发公司
软件开发可以暂估成本
软件开发项目状态区分
活动买的云服务器能退吗
陕西省中职网络安全
xxljob连接的数据库在哪
安徽软件开发参考价格
小班网络安全教学活动反思
揭阳无限软件开发市价
工商联数据库信用证书有用吗
服务器密码安全
济宁高校党建软件开发哪儿好
玉溪网络技术公司招聘
大学信息技术网络安全培训
服务器程序设计图解
数据库为什么减少冗余