uifield.js
来自「anewssystem新闻发布系统集成使用了spring hibernate f」· JavaScript 代码 · 共 212 行
JS
212 行
/*--------------Ext.form.TreeField--------------------*/
function createXmlTree(el, url, callback) {
/*
*/
var Tree = Ext.tree;
var tree = new Tree.TreePanel(el, {//id
animate:true,
loader: new Tree.TreeLoader({dataUrl:'/anews/newscategory/getChildren.htm'}),//c.dataTag
enableDD:false,
containerScroll: true
});
// set the root node
var root = new Tree.AsyncTreeNode({
text: '分类',//c.title
draggable:false,
id:'source'//c.rootId
});
tree.setRootNode(root);
// render the tree
tree.render();
root.expand();
return tree;
/*
var tree = new Ext.tree.TreePanel(el,{containerScroll: true});
var p = new Ext.data.HttpProxy({url:url});
p.on("loadexception", function(o, response, e) {
if (e) throw e;
});
p.load(null, {
read: function(response) {
var doc = response.responseXML;
tree.setRootNode(rpTreeNodeFromXml(doc.documentElement || doc));
}
}, callback || tree.render, tree);
return tree;
*/
}
//rp tree from xml
function rpTreeNodeFromXml(XmlEl) {
// Text is nodeValue to text node, otherwise it's the tag name
var t = ((XmlEl.nodeType == 3) ? XmlEl.nodeValue : XmlEl.tagName);
// No text, no node.
if (t.replace(/\s/g,'').length == 0) {
return null;
}
// Special case of an element containing no attributes and just one text node
var leafTextNode = ((XmlEl.attributes.length == 0) && (XmlEl.childNodes.length == 1) && (XmlEl.firstChild.nodeType == 3));
if (leafTextNode ) {
return new Ext.tree.TreeNode({
tagName: XmlEl.tagName,
text: XmlEl.firstChild.nodeValue
});
}
var result = new Ext.tree.TreeNode({
text : t
});
result.tagName=XmlEl.tagName;
// For Elements, process attributes and children
if (XmlEl.nodeType == 1) {
Ext.each(XmlEl.attributes, function(a) {
result.attributes[a.nodeName]=a.nodeValue;
if(a.nodeName=='text')
result.setText(a.nodeValue);
});
if (!leafTextNode) {
Ext.each(XmlEl.childNodes, function(el) {
// Only process Elements and TextNodes
if ((el.nodeType == 1) || (el.nodeType == 3)) {
var c = rpTreeNodeFromXml(el);
if (c) {
result.appendChild(c);
}
}
});
}
}
return result;
}
Ext.form.TreeField = function(config) {
config.readOnly = true;
Ext.form.TreeField.superclass.constructor.call(this, config);
};
Ext.extend(Ext.form.TreeField, Ext.form.TriggerField, {
triggerClass : 'x-form-date-trigger',
defaultAutoCreate : {tag: "input", type: "text", size: "10", autocomplete: "off"},
getValue : function() {
return Ext.form.TreeField.superclass.getValue.call(this)|| "";
},
setValue : function(val) {
Ext.form.TreeField.superclass.setValue.call(this, val);
},
menuListeners : {
select:function (item, picker, node) {
var v = node.text;
var ed = this.ed;
if(this.selfunc) {
v = this.selfunc(node);
}
if(ed) {
var r= ed.record;
r.set(this.fn, v);
} else {
this.focus();
this.setValue(v);
//Ext.get("category_id").value = node.id;
//alert(Ext.get("category_id").value);
document.getElementById("category_id").value = node.id;
//alert(document.getElementById("category_id"));
//alert(document.getElementById("category_id").value);
}
},
hide : function(){
}
},
onTriggerClick : function(){
if(this.disabled){
return;
}
if(this.menu == null){
this.menu = new Ext.menu.TreeMenu();
}
Ext.apply(this.menu.picker, {
url:this.url
});
this.menu.on(Ext.apply({}, this.menuListeners, {
scope:this
}));
this.menu.picker.setValue(this.getValue());
this.menu.show(this.el, "tl-bl?");
},
invalidText : "{0} is not a valid date - it must be in the format {1}"
});
Ext.menu.TreeMenu = function(config){
Ext.menu.TreeMenu.superclass.constructor.call(this, config);
this.plain = true;
var di = new Ext.menu.TreeItem(config);
this.add(di);
this.picker = di.picker;
this.relayEvents(di, ["select"]);
this.relayEvents(di, ["beforesubmit"]);
};
Ext.extend(Ext.menu.TreeMenu, Ext.menu.Menu);
Ext.menu.TreeItem = function(config){
Ext.menu.TreeItem.superclass.constructor.call(this, new Ext.TreePicker(config), config);
this.picker = this.component;
this.addEvents({select: true});
this.picker.on("render", function(picker){
picker.getEl().swallowEvent("click");
//picker.container.addClass("x-menu-date-item");
});
this.picker.on("select", this.onSelect, this);
};
Ext.extend(Ext.menu.TreeItem, Ext.menu.Adapter, {
onSelect : function(picker, node){
this.fireEvent("select", this, picker, node);
Ext.menu.TreeItem.superclass.handleClick.call(this);
}
});
Ext.TreePicker = function(config){
Ext.TreePicker.superclass.constructor.call(this, config);
this.addEvents({select: true});
if(this.handler){
this.on("select", this.handler, this.scope || this);
}
};
Ext.extend(Ext.TreePicker, Ext.Component, {
setValue : function(value){
this.value=value;
if(this.tree)
this.tree.selectPath(value,'text');
},
getValue : function(){
return this.value;
},
onRender : function(container){
var me=this;
var dh = Ext.DomHelper;
var el = document.createElement("div");
el.className = "x-date-picker";
el.innerHTML='';
var eo= Ext.get(el);
this.el=eo;
container.dom.appendChild(el);
var tree=createXmlTree(el,me.url,function(){
var tree=this;
tree.render();
tree.selectPath(me.getValue(),'text');
});
tree.on('click',function(node,e){
me.fireEvent("select", me, node);
});
this.tree=tree;
}
}
);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?