Extjs4.x ,tree.getStore().load(); 重复加载多次的问题,

使用 tree.getStore().load() 时,虽然最后都重新加载了,但居然会访问服务器十多次,这可如何是好?

关键自带如下:
[code="js"]
var store = Ext.create('Ext.data.TreeStore', {
fields:[{name:"url",type:"string"},{name:"pids",type:"string"},{name:"text",type:"string"}],
root: {
expanded:true,
text:"Root",
id:"0",
pids:"0,"
} ,
proxy: {
type: 'ajax',
url: '/getMenuData',
extraParams: {"test": "1"},
method: "POST",
reader: {
type: 'json'
}
},
autoLoad: true
});

var tree = Ext.create('Ext.tree.Panel', {
layout:'fit',
width: 200,
bodyPadding: 5,
store: store,
autoDestroy:true,
rootVisible:true,
title:"测试"
});

[/code]

,使用 tree.getStore().load()方法的时候,
怎么会重复加载多次?
怎么会这样?

7个回答

贴上去 就解决了

/*
Overrides for fixing clearOnLoad for TreeStore
*/
Ext.override(Ext.data.TreeStore, {
load: function(options) {
options = options || {};
options.params = options.params || {};

var me = this,
node = options.node || me.tree.getRootNode(),
root;

// If there is not a node it means the user hasnt defined a rootnode yet. In this case lets just
// create one for them.
if (!node) {
node = me.setRootNode({
expanded: true
});
}

if (me.clearOnLoad) {
node.removeAll(false);
}

Ext.applyIf(options, {
node: node
});
options.params[me.nodeParam] = node ? node.getId() : 'root';

if (node) {
node.set('loading', true);
}

return me.callParent([options]);
}
});

[code="java"]
// 自动加载 如果你会手动调用load() 的话,这里可以不自动加载.
autoLoad: true

// 至于你说的会加载10多次...你可以检查一下,是不是绑定了多次事件.或者在load()的// 时候,断点,看是否调用了10多次.
[/code]

树的加载是可以分层次的,即一次加载一个节点的直属子节点。

我猜你后面肯定有调用什么递归展开之类的逻辑,也可能Ext4.x自带的递归加载(4.x没怎么用过),当树节点层次较多时会层层加载,发出多个请求;也有可能你的树只有一层,但叶子节点没有设定leaf:true,导致Ext也去尝试加载子节点;

我貌似也遇到这个问题了。加载超慢。
求解。

你要在返回的数据中显式地声明节点为叶子节点: leaf: true
否则树组件以为它有子节点,去尝试加载

抱歉,没看到你的补充说明,你说的“但如果放在事件里面”是什么意思?是什么事件?

记得给分啊

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ExtJS4.x的提示插件

ExtJS3.x里面有这种提示的插件 Ext.ux.Toast.msg 那在ExtJS4.x里面是用啥呢

extjs treepanel 如何在tree的grid load后让tree自动展开

//store var leftTreeStore=Ext.create('Ext.data.TreeStore', { root : { id : '0', expanded : true }, proxy : { type : 'ajax', // url : 'common/bindOrgTree.action' url :TreeUrl }, autoLoad : false }); //panel var leftMenu = Ext.create('Ext.tree.Panel', { store : leftTreeStore, rootVisible : false, region: 'north', id : 'north-panel', title : '组织机构列表', hideCollapseTool : false, height : 220, useArrows : true, collapsible : false, width : 250 }); //展开 leftMenu.expandAll(); 到此可以将tree都展开,可是在进行 leftTreeStore.load({ params:{version:version,orgCode:orgCode} }); 后tree不能展开了,如何解决。。。

Extjs this.el.dom为空的情况

不知道为什么我写的一个最简单的一个根节点,总是提示Extjs this.el.dom为NULL或者不是对象。代码已经看了很多次了 应该是争取的吧 把代码贴出来给大家看看~ <body> <head> <link rel="stylesheet" type="text/css" href="../ext-2.2.1/resources/css/ext-all.css" /> <script type="text/javascript" src="../ext-2.2.1/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="../ext-2.2.1/ext-all.js"></script> </head> <script> var Tree = Ext.tree; var tree=new Tree.TreePanel({el:'tree-div'}); var root=new Ext.tree.TreeNode({text:'根节点'}); tree.setRootNode(root); tree.render(); tree.getRootNode().expand(); </script> <div id="tree-div" style="height:300px;"></div> </body> 有知道答案的帮帮我啊 搞了一天没看出任何问题 恕小弟愚昧! [b]问题补充:[/b] 谢谢yourgame 这位大哥 ,已帮我问题正确解决,送分,由于已经没有分了,所以这点分,希望不要介意。。抱歉!!

extjs4.2 tree panel 重复加载!

这是后台返回的JSON {"mytree":[{"description":"faffaf","name":"wafa","children":[{"description":"wowowo","name":"hahaha","leaf":true,"expanded":true}],"info":"xxxxxx"}]} 前台点开节点时,它一直重复发请求如图 ![CSDN移动问答][1] js 代码如下 enter code her evar store = Ext.create('Ext.data.TreeStore', { fields: ['name', 'description','info'], proxy : { type : 'ajax', url : 'ziyuan/getData.do', reader: { root: 'mytree', type: 'json' } }, root:{ name:"xxx" } }); enter code here Ext.create('Ext.tree.Panel', { renderTo: Ext.getBody(), store : store, title: '一颗拥有多列的树', columns: [{ xtype: 'treecolumn', text: '节点名', dataIndex: 'name', width: 150, sortable: true }, { text: '描述', dataIndex: 'description', flex: 1, sortable: true }, { text: '信息', dataIndex: 'info', flex: 1, sortable: true }] }); [1]: http://img.my.csdn.net/uploads/201410/29/1414572517_8516.jpg

求教一个问题,Extjs4.x如何动态修改/添加store或者Model的Fields信息

因为我是动态列,其中一部分固定,一部分动态,需要可以执行增删改查,我要怎么在controller中设置获取Model并修改fields呢?求教了

extjs4.x store获取数据

![图片说明](https://img-ask.csdn.net/upload/201710/19/1508418467_247467.jpg) 这是后台传过来的数据,怎么获得total这个数据啊 ![图片说明](https://img-ask.csdn.net/upload/201710/19/1508418515_128368.jpg)

ExtJS FormPanel.getForm.load()问题

首先说下我的业务,配上图案大家容易理解: [table] |点击下图修改按钮:| [/table] [img]http://dl.iteye.com/upload/attachment/446584/96315930-cfc5-39c5-90ca-3cf35918283f.png[/img] [code="java"]function loadForm(ptid){ ProgramForm.getForm().load({ waitMsg : '正在加载数据请稍后', //提示信息 waitTitle : '提示', //标题 url : 'findTpartytype.action?tpartytype.id='+ptid, //请求的url地址 method:'POST', //请求方式 success:function(form,action){ //加载成功的处理函数 ProgramForm.load(); (action.result.data), Ext.Msg.alert('提示','find成功'); }, failure:function(form,action){ //加载失败的处理函数 Ext.Msg.alert('提示','find失败'); } }); }[/code] [table] |效果图如下:| [/table] [img]http://dl.iteye.com/upload/attachment/446582/2859bccb-2c98-34fd-8ca2-86c49d0421b9.png[/img] FomrPanel代码如下: [code="java"]var ProgramForm = new Ext.FormPanel({ labelSeparator : ":", //元素分隔符为:s frame:true, //是否渲染 height:100, border:true, //无边框 reader : new Ext.data.JsonReader({ field:'json', root:'root' // totalProperty:'totalCount' },record), items : [ { xtype:'textfield', //类型 fieldLabel:'名称', width : 200, allowBlank : false, //验证是否为空 blankText : '当事人名称不能为空' name : 'tpartytype.partytypename' //定义元素名称 }, { //放置隐藏域修改用 xtype: 'textfield', name: 'tpartytype.id', id: 'tpartytype.id', hidden: true, hideLabel:true }, { //放置隐藏 把多有参数写满/看有无关系 xtype: 'textfield', name: 'tpartytype.partytypecode', id: 'tpartytype.partytypecode', hidden: true, hideLabel:true } ], buttons:[ { text : '提交', handler : submitForm }, { text : '关闭', handler : function(){ win.hide(); } } ], keys:[{key: [10,13],fn:submitForm}] //键盘事件 提交 fn:对应提交handler });[/code] [table] |结果如下图:| [/table] [img]http://dl.iteye.com/upload/attachment/446580/58b7e537-ebc9-38c4-b760-eb240f770239.png[/img] [size=large][color=red][b]问题:[/b][/color][/size] 我怎么才能把查到的数据放到上面的结果图中呢?因为我现在更新总是做插入,我的隐藏域ID传过去。请大家给下方法,我新手刚学。 [table] |备注,load()交互的查询结果如下:| [/table] [code="java"]{root:[{"userlogDescription":"当事人类型名称为:gggggggg","partytypename":"gggggggg","systemlogDescription":"","partytypecode":"","searchenddate":"","searchstartdate":"","id":"14ED820E_8D8F_BFB1_37E4_AF156A3FFE88"}]} [/code] [b][color=red]这是我的全部积分,大家帮助谢谢![/color][/b]

Extjs this.el.dom为空或不是对象

<p>大家好,这个程序,有两处(?????????的地方)有问题,第一处我是想,动态改变form里textfiled的readOnly属性</p> <p>第二处我是想,删除用户选择的记录。</p> <p> </p> <p>Ext.onReady(function(){<br> <br> //当超级管理员点击 "详情" 按钮时,弹出所需要的窗口<br> //record 将用户选中的Record对象,放到record中,然后在放到form里<br>function showWindowForm(text) {<br>    //直接取得选中的行对应的record   <br>    var record = grid.getSelectionModel().getSelected();<br>    if(!record&amp;&amp;(text!="tianJia")){   <br>     Ext.Msg.alert('信息','请选择要编辑的数据');   <br>       return;   <br>    }<br>       win.show(Ext.get(text));<br>       if(text!="tianJia")<br>       form.getForm().loadRecord(record);<br>    <br>}</p> <p>//当点击"添加"、"修改"按钮时,隐藏的form的"确定"按钮显示出来、并同时将"取消"按钮换回来,还要form中的所有textfield元素进入可编辑状态。而当点击"详情"按钮,则反之。<br>function setFormButton(text) {<br>    form.items.each(function eachItem(item,index,length){   <br>                if(item.isXType("textfield")){<br>                   if(text=="xiangQing") <br>                      item.readOnly=true;    //有时这个设置有用,可有时他也没用。不过下面的Button的设置,保证了程序的安全性?????????????????????????<br>                   else <br>                      item.readOnly=false;<br>                }<br>                if (item.items &amp;&amp; item.items.getCount() &gt; 0) {   <br>                     item.items.each(eachItem, this);   <br>                }<br>    },this);<br>    <br>    if(text=="xiangQing") <br>     win.buttons[0].hide();<br>    else <br>     win.buttons[0].show();<br>     <br>    if(text=="xiangQing") <br>     win.buttons[1].setText("确定");<br>    else <br>     win.buttons[1].setText("取消");<br>}</p> <p> <br> //定义store读取数据的格式<br> var DepartmentRecord = new Ext.data.Record.create([<br>  {name: 'id',type: 'int'},<br>  {name: 'name',type: 'string'},<br>  {name: 'description',type: 'string'}<br> ]);<br> //定义行选择模式<br> var sm = new Ext.grid.CheckboxSelectionModel();<br> //定义grid的列模式<br>    var cm = new Ext.grid.ColumnModel([<br>        sm,<br>        {header:'名称',dataIndex:'name'},<br>        {header:'描述',dataIndex:'description'}<br>    ]);</p> <p>    var store = new Ext.data.Store({<br>        proxy: new Ext.data.HttpProxy({url:'../servlet/DepartmentType_list'}),<br>        reader: new Ext.data.JsonReader({<br>            totalProperty: 'totalCount',<br>            root: 'result'<br>        }, DepartmentRecord)<br>    });<br>    //grid 设置 start<br>    var grid = new Ext.grid.GridPanel({<br>        region: 'center',<br>        title: "系部类型列表",<br>        autoHeight: true,<br>        store: store,<br>        cm: cm,<br>        sm: sm,<br>        loadMask: {<br>         msg: "正在载入,请稍等。。。。。"<br>        },<br>        viewConfig: {<br>         forceFit: true  //表格会自动延展每列的长度,使内容填满整个表格<br>        },<br>        tbar: new Ext.Toolbar(<br>        ['-',{<br>           text: '详情',//当超级管理员点击某一行,再点击此按钮,弹出"详情"窗口<br>           id: 'xiangQing',<br>           handler: function(){ showWindowForm("xiangQing");setFormButton("xiangQing") }  <br>        },'-',{<br>           text: '添加',<br>           id: 'tianJia',<br>           handler: function() { showWindowForm("tianJia");setFormButton("tianJia") }   <br>        },'-',{<br>           text: '修改',<br>           id: 'xiuGai',<br>           handler: function() { showWindowForm("xiuGai");setFormButton("xiuGai") }  <br>        },'-',{<br>           text: '删除',<br>           handler: function() {<br>             var record2 = grid.getSelectionModel().getSelected();<br>             if(!record2) {                                                                    <br>              Ext.Msg.alert("信息","请选择您要删除的信息。");                                        <br>             }                                                                                      <br>             else {<br>              form.getForm().loadRecord(record2);<br>              Ext.Msg.confirm('确认对话框','你确定要删除这行信息吗?',function(btn) {            //难道仅仅是因为 form 在 win 里,而不在 grid 里<br>                  if(btn=='yes') {                                                                                        <br>                     form.getForm().submit({                                                                     //就出现 form.getForm().findField("id") 为空或不是对象<br>                  url: '../servlet/DepartmentType_delete',                                             //等问题吗。???????????????????????????<br>                  success: function(f,action) {<br>                   if(action.result.success) {<br>                    Ext.Msg.alert("信息",action.result.msg,function() {<br>                      grid.getStore().reload();<br>                      form.getForm().reset();//清空form上一次提交的数据<br>                    })<br>                   }<br>                  },<br>                  failure: function() {<br>                   Ext.Msg.alert("信息","操作失败");<br>                  }<br>             })<br>                  }<br>              });   <br>             }<br>           }    <br>        },'-']),<br>        bbar: new Ext.PagingToolbar({   //分页工具栏 start<br>            pageSize: 10,<br>            store: store,<br>            displayInfo: true,//显示数据信息<br>            displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',<br>            emptyMsg: "没有记录"         //分页工具栏 end<br>        })<br>    });<br>    // grid 设置 end<br>    <br>     store.load({params:{start:0,limit:15}});</p> <p>    // form 设置 start<br>     var form = new Ext.form.FormPanel({<br>        labelAlign: 'right',<br>        labelWidth: 40,<br>        frame: true,<br>        defaults: {<br>             anchor: "90%",<br>             allowBlank: false<br>        },<br>        height: 280,<br>        width: 200,<br>        defaultType: 'textfield',<br>        items: [{<br>           xtype: 'hidden',<br>           name: 'id'<br>        },{<br>          fieldLabel: '名称',<br>          id: 'name',<br>          name: 'name'<br>        },{<br>          fieldLabel: '描述',<br>          name: 'description',<br>          xtype: 'textarea',<br>          height:180,<br>          maxLength: 127<br>        }]<br>    });<br>       //form 设置 end<br>    <br>        //定义所需窗口 window  Start // window 设置 start 此窗口用于存放form<br>      var win = new Ext.Window({<br>        title: '浏览系部类型',<br>        layout: 'fit',<br>        width: 350,<br>        height: 300,<br>        closable: false, //隐藏关闭按钮<br>        modal: true,<br>        plain: true,<br>        buttonAlign: 'center',<br>        items:[form],<br>        buttons: [{<br>           text: '确定',<br>           handler: function() {<br>            if(!form.getForm().isValid()) {<br>             return;<br>            }<br>            var id = form.getForm().findField('id').getValue();<br>            if(id=='') {<br>               form.getForm().submit({<br>               url: '../servlet/DepartmentType_add',<br>               success: function(f,action) {<br>              if(action.result.success) {<br>              Ext.Msg.alert("信息",action.result.msg,function() {<br>                 grid.getStore().reload();<br>                 form.getForm().reset();<br>                 win.hide();<br>               });<br>              }<br>                },<br>                failure: function() {<br>                Ext.Msg.alert("信息","添加失败");<br>                }<br>                });<br>            }<br>            else {<br>               form.getForm().submit({<br>                 url: '../servlet/DepartmentType_fix',<br>                 success: function(f,action) {<br>                  if(action.result.success) {<br>                   Ext.Msg.alert("信息",action.result.msg,function() {<br>                      grid.getStore().reload();<br>                      form.getForm().reset();//清空form上一次提交的数据<br>                      win.hide();<br>                   });<br>                  }<br>                 },<br>                 failure: function() {<br>                  Ext.Msg.alert("信息","修改失败");<br>                 }<br>               }) <br>            }<br>          //  win.hide();<br>           }<br>        },{<br>           text: '取消',<br>           handler: function() {<br>            form.getForm().reset();<br>            win.hide();<br>           }<br>        }]<br>    });  <br>    //   //定义所需窗体 window 设置 end  <br>    </p> <p>    var _viewport = new Ext.Viewport({<br>      layout: 'border',<br>      items: [grid]<br>    });<br> <br>});</p>

ExtJs this.el.dom为空或不是对象 (在线狂等!!!)

<p><span style="font-size: small;">js代码如下: <br><br>Ext.onReady(showform); <br>function showform() { <br><br>var submitbn = new Ext.Button() <br><br>var pwfield = new Ext.form.TextField({ <br>allowBlank : false,// 不能为空 <br>inputType : "password",// 密码框 <br>blankText : "密码不能为空",// 提示信息 <br>maxLength : 10, <br>applyTo:"userpwd", <br>width : 190 <br>}); <br>; <br>// 定义一个用户名文本框 <br>var namefield = new Ext.form.TextField({ <br>allowBlank : false,// 不能为空 <br>inputType : "text",// 普通文本框 <br>blankText : "用户名不能为空",// 提示信息 <br>maxLength : 10, <br>applyTo:"username", <br>width : 190 <br>}); <br><br>var loginform = new Ext.form.BasicForm("login-id",{ <br>method : "post", <br>standardSubmit : true, <br><br>url : "stu.do?method=stuList" <br><br>}); <br>loginform.add(namefield,pwfield); <br>loginform.render("hello"); <br><br>}</span></p> <p><span style="font-size: small;"> 表单显示不出来,一直提示:this.el.dom为空或不是对象 </span></p> <p><span style="font-size: small;">哪位帮帮我呀!!</span></p>

ExtJS4.x 取得当前行的索引

情况如下: Ext.grid.Panel利用这个表格控件读取表格数据,此控件是可以编辑的,然后点击一个下拉框(xtype:'trigger')触发的,然后在弹出来的界面中选择一条数据让名称添加在表格的信息框里即可 [code="java"] //获得弹出界面选中的那条记录 var rowdata = progrid.getSelectionModel().getSelection(); //下拉框所在的那个可编辑表格上,获得当前的索引,就下面这句,返回应该是个Object,现在是空的,我应该怎么取呢,然后用最后一句给赋值 就完事了 var comgridCol = store.getAt(selectindex); comgridCol.set("Rel_ProName",rowdata[0].data.pro_name); [/code]

Extjs6 bootstrap.js为什么不能加载extjs框架

``` <!DOCTYPE HTML> <html manifest=""> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>app</title> <script type="text/javascript"> var Ext = Ext || {}; // Ext namespace won't be defined yet... // This function is called by the Microloader after it has performed basic // device detection. The results are provided in the "tags" object. You can // use these tags here or even add custom tags. These can be used by platform // filters in your manifest or by platformConfig expressions in your app. // Ext.beforeLoad = function (tags) { var s = location.search, // the query string (ex "?foo=1&bar") profile; // For testing look for "?classic" or "?modern" in the URL to override // device detection default. if (s.match(/\bclassic\b/)) { profile = 'classic'; } else if (s.match(/\bmodern\b/)) { profile = 'modern'; } else { profile = tags.desktop ? 'classic' : 'modern'; //profile = tags.phone ? 'modern' : 'classic'; } Ext.manifest = profile; // this name must match a build profile name // This function is called once the manifest is available but before // any data is pulled from it. // //return function (manifest) { // peek at / modify the manifest object //}; }; </script> <!--The line below must be kept intact for Sencha Cmd to build your application --> <script id="microloader" data-app="e34bf098-cabc-49d5-a390-bd9e72585c15" type="text/javascript" src="bootstrap.js"></script> <script type="text/javascript"> function helloworld(){ Ext.Msg.alert("EXTJS"); } </script> </head> <body onload="helloworld()"> </body> </html> ``` 为什么 Ext.Msg.alert("EXTJS"); 不能执行?需要导入 ``` <script src="ext/ext-bootstrap.js" ></script> ``` 才能执行! 这个代码是Sencha Cmd6生成的ExtJs6.0 的index.html 为什么我加入的ext代码就不行 他可以调用其他ext代码展现首页

extjs treePanel.expandPath显示

我想通过treePanel.expandPath展开到1001010000这一级,但现在用expandPath只能显示到1xxx这一级。请问是什么原因?? 网上没有找到答案。都说treePanel.expandPath(/0000/1XXX/1001000000/1001010000,‘id’,function(){})是可以的。 我的tree是异步加载的。和这有关系吗??

ExtJS4.x 如何在Tpl模板中添加分页控件

如题: 在下拉框中有一个Tpl模板,如何在加一个分页工具栏 [code="java"] Ext.require([ 'Ext.form.field.ComboBox', 'Ext.form.FieldSet', 'Ext.tip.QuickTipManager', 'Ext.data.*' ]); // The data for all states var states = [ {"abbr":"AL","name":"Alabama","slogan":"The Heart of Dixie"}, {"abbr":"AK","name":"Alaska","slogan":"The Land of the Midnight Sun"}, {"abbr":"AZ","name":"Arizona","slogan":"The Grand Canyon State"} ]; Ext.onReady(function(){ // Define the model for a State Ext.regModel('State', { fields: [ {type: 'string', name: 'abbr'}, {type: 'string', name: 'name'}, {type: 'string', name: 'slogan'} ] }); // The data store holding the states var store = Ext.create('Ext.data.Store', { model: 'State', data: states }); // ComboBox with a custom item template var customTplCombo = Ext.create('Ext.form.field.ComboBox', { fieldLabel: 'Select a single state', renderTo: 'customTplCombo', displayField: 'name', width: 500, labelWidth: 130, store: store, queryMode: 'local', listConfig: { getInnerTpl: function() { return '<div data-qtip="{name}. {slogan}">{name} ({abbr})</div>'; } } }); }); [/code]

extjs4.x中textfield文本框怎么防止html注入

我在文本框输入 HTML脚本可录入就会变成这样![图片说明](https://img-ask.csdn.net/upload/201710/17/1508224477_919540.png)

extjs4.x store获取数据,来个大神帮看看啊

![图片说明](https://img-ask.csdn.net/upload/201710/21/1508592607_206448.jpg) ![图片说明](https://img-ask.csdn.net/upload/201710/21/1508592669_687790.jpg)

关于 Extjs 4.X中 Ext.Function源码中的一些问题, 关于javascript基础知识的

Ext.Function中定义了如下一个叫做flexSetter的函数,其作用看看就明白 问题在于 其中做a===null判断的地方为什么不用a==null呢? 源码如下: Ext.Function = { /** * A very commonly used method throughout the framework. It acts as a wrapper around another method * which originally accepts 2 arguments for `name` and `value`. * The wrapped function then allows "flexible" value setting of either: * * - `name` and `value` as 2 arguments * - one single object argument with multiple key - value pairs * * For example: * * var setValue = Ext.Function.flexSetter(function(name, value) { * this[name] = value; * }); * * // Afterwards * // Setting a single name - value * setValue('name1', 'value1'); * * // Settings multiple name - value pairs * setValue({ * name1: 'value1', * name2: 'value2', * name3: 'value3' * }); * * @param {Function} setter * @returns {Function} flexSetter */ flexSetter: function(fn) { return function(a, b) { var k, i; if (a === null) { return this; } if (typeof a !== 'string') { for (k in a) { if (a.hasOwnProperty(k)) { fn.call(this, k, a[k]); } } if (Ext.enumerables) { for (i = Ext.enumerables.length; i--;) { k = Ext.enumerables[i]; if (a.hasOwnProperty(k)) { fn.call(this, k, a[k]); } } } } else { fn.call(this, a, b); } return this; }; },

ExtJS4.x下拉框默认第一条数据

加载窗体时,系统显示加载的第一条数据更新到下拉框中;现在是得到了第一条数据,alert出来,但是如何更新到我的这个下拉框控件上呢? [code="java"] xtype:'combo', id:'xxID', name:'xx', store:xxstore, valueField:'name', displayField:'text', forceSelection :true, lazyInit:false, editable : false, triggerAction: 'all', width : 150, listeners:{ afterrender:function(combo1){ var firstValue = xxstore.getAt(0).get('text'); //alert(firstValue); combo1.setValue(firstValue); } } [/code]

请教extjs Ext.panel.Panel的collapse(方法)的使用

求Ext.panel.Panel的collapse(方法)的使用 (不是true或false的那个配置的,是写在controller里面的,带个括号的那个)

关于Extjs4.2 tree异步加载的问题

在工作上遇到一个数据量毕竟的大的数据源大概有1w5左右。要把它加载到extjs的中tree中 怎么使用异步加载。求大神赐教。下面是代码 ![![图片说明](https://img-ask.csdn.net/upload/201701/11/1484121645_658285.png)图片说明](https://img-ask.csdn.net/upload/201701/11/1484121640_45820.png)

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐