ExtJs问题,如何动态添加Window控件items项中html的元素

ExtJs问题,如何动态添加Window控件items项中html的元素,第1张

html只接受字符串, 不接受Ext.Component或Element或原生DOM对象, 但可以是调用方法返回的字符串. 也可以是function字面量调用, function(){...}()这样.

为item指定id属性, 使用原生方法修改DOM对象innerHTML, document.getElementById(id), 任何位置都可调用. 不过有浏览器兼容性问题.

如果只是要生成div的化完全可以使用Ext.Panel代替, 在任意位置都可以调用_window.add/remove增减items, 之后需要调用_window.render方法重新render

extjs删除动态添加的控件的方法是利用remove函数。

函数原型定义:remove( Component/String component, [Boolean autoDestroy]) : Void

作用:从指定的容器中移除组件。删除之前触发事件beforeremove,则触发该组件已被删除后remove事件。

参数说明:

component : 将被删除的组件/字符串组件引用或者id。

autoDestroy : 布尔(可选)True可以自动调用删除组件的Ext.Component.destroy功能。默认为这个容器的autoDestroy配置值

var tree = new Ext.tree.TreePanel({

title :'我是树' ,

width : 200,

renderTo : 'tree-div',

animate: true,

enableDD: false,

containerScroll: true,

collapsible: true,

border : true ,

dataUrl : '/aaa/bbb.action',

})

var root = new Ext.tree.AsyncTreeNode({

draggable : false ,

id : -100 ,

text : '我是根'

})

tree.setRootNode(root )

把你一级目录的ParentNodeId都设为-100

第一次加载树的时候,树会将node=-100传给你的action,通过-100查询出你的一级目录

点击展开某个目录时,会将目录id穿给你的action,通过目录id查询目录下的子项

action :

String parentId = request.getParameter("node")

//查处ParentNodeId的值为parentId 的菜单或者目录

List<Node> treeNodes = 从数据库里根据ParentNodeId=parentId 查出来

JSONArray array = new JSONArray()

for(Node node : treeNodes){

JSONObject json = new JSONObject()

json.put("id",node.getNodeId())

json.put("text",***)

json.put("leaf",tree or false)

json.put("cls","leaf" or "folder")

array.put(json)

}

response.getWriter.write(array.toString())


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11896719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存