Ext gridPanel columns问题

看了一下API 好像columns的属性没有链接属性 我想实现一列的他的值都是“修改”当点击修改的时候 就会弹出window然后将form嵌入到window里面
具体代码如下:
columns:[
{header:"栏目编号",dataIndex:"lmbh",sortable:true},
{header:"链接编号",dataIndex:"ljbh",sortable:true},
{header:"链接名称",dataIndex:"ljmc"},
{header:"备注",dataIndex:"bz"},
{header:"查看BI",dataIndex:"lookBi"},
{header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
function(){return "修改";}
}]
[b]问题补充:[/b]
你的方法我想到了 但是因为test函数要执行window就必须放在EXT.ONReady()里面 这样的话这个window一开始就会弹出来 不会等到点击“修改”的时候再弹 你们遇到这种情况吗 是怎么解决的啊 谢谢啦
[b]问题补充:[/b]
问题来了 这样做可能不行 因为
{header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
function(){
return "修改";}
}
这样获取表了这一行的主键值啊!test()里面怎么接收ID值呢 哎
[b]问题补充:[/b]
那蔡 我就问你 你这个value是怎么得来的 他的值是谁的值?
[b]问题补充:[/b]
我认为大家给的参数不对 因为我是修改 我肯定是获取这条记录对应数据库段的ID 而不是这个EXT表格这个自己生产的ID 对吧 关键是对应数据库短的ID 怎么获取
[b]问题补充:[/b]
function(_value,_this,_data){var lmbh=_data.get("lmbh");return "修改";}
我这个lmbh怎么喘不过去啊 值都获取了的 就是传不过去 郁闷
[b]问题补充:[/b]
你这样也不行 老实语法错误 哎

8个回答

[code="java"]function(_value,_this,_data){var lmbh=_data.get("lmbh");return "修改";} [/code]
这个当然传不出去,因为生成DOM的时候,这个lmbh系统跟本找不到。要改为
[code="java"]function(_value,_this,_data){var lmbh=_data.get("lmbh");return "修改";} [/code]
这样子,才能把值传给DOM的

改成这样就好了
columns:[
{header:"栏目编号",dataIndex:"lmbh",sortable:true},
{header:"链接编号",dataIndex:"ljbh",sortable:true},
{header:"链接名称",dataIndex:"ljmc"},
{header:"备注",dataIndex:"bz"},
{header:"查看BI",dataIndex:"lookBi"},
{header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
function(){
return "修改";}
}

]

function test()
{
定义window
}

"修改"
没用过这个。。。 :cry: :oops:
修改
[quote]
你的方法我想到了 但是因为test函数要执行window就必须放在EXT.ONReady()里面 这样的话这个window一开始就会弹出来 不会等到点击“修改”的时候再弹 你们遇到这种情况吗 是怎么解决的啊 谢谢啦 [/quote]
有你说的这个情况么?
function test()要放在EXT.ONReady()的外面才行,里面应该拿不到的吧。。。

要在renderer的function传参,给个示例
[code="js"]{header : '条款名称',
dataIndex : 'mc',
width : 150,
renderer : function(_value, _this, _data) {
var value = _data.get("t");
return "" + _value + "";
}
}[/code]

要更详细的看renderer方法的api

试试:
[code="java"]
...
function setIdCulomn(id,cellmeta,record,rowIndex,columnIndex,store){
return '修改';
}
function editRow(id)
{

//var url = 'xxx.jsp';
//window.open(url);
//alert(id);
new Ext.Window({id:'win',title:'修改窗口',width:600,height:480,html:'表单'}).show();
}
Ext.OnReady(function(){
...

columns:[
{header:"栏目编号",dataIndex:"lmbh",sortable:true},
{header:"链接编号",dataIndex:"ljbh",sortable:true},
{header:"链接名称",dataIndex:"ljmc"},
{header:"备注",dataIndex:"bz"},
{header:"查看BI",dataIndex:"lookBi"},
{header:"修改",dataIndex:"UpdateBi",renderer:setIdCulomn}
}]

...
});
...[/code]

晕,,你有没有看代码,又有没有看API。
[code="java"]renderer : function(_value, _this, _data) {

var value = _data.get("t");

return "" + _value + "";

} [/code]

value的值都是由从_data中取的,_value是这行相对应的reader中对应的值
_this不好意思忘了指什么,偶没用到。
_data就是reader中的值啊。。。。
你要去看看Ext.grid.ColumnModel中的renderer方法。

[code="java"]columns:[
{header:"栏目编号",dataIndex:"lmbh",sortable:true},
{header:"链接编号",dataIndex:"ljbh",sortable:true},
{header:"链接名称",dataIndex:"ljmc"},
{header:"备注",dataIndex:"bz"},
{header:"查看BI",dataIndex:"lookBi"},
{header:"修改",dataIndex:"UpdateBi",renderer://当点击修改时弹出window
function(_value,_this,_data){
var lmbh = _data.get("lmbh");
var ljbh = _data.get("ljbh");
就这么简单.

return "修改";}
}][/code]

[code="java"]...

function setIdCulomn(id,cellmeta,record,rowIndex,columnIndex,store){

return '修改';

}

function editRow(id)

{

//var url = 'xxx.jsp';

//window.open(url);

//alert(id);

new Ext.Window({id:'win',title:'修改窗口',width:600,height:480,html:'表单'}).show();

}

Ext.OnReady(function(){

...

columns:[

{header:"栏目编号",dataIndex:"lmbh",sortable:true},

{header:"链接编号",dataIndex:"ljbh",sortable:true},

{header:"链接名称",dataIndex:"ljmc"},

{header:"备注",dataIndex:"bz"},

{header:"查看BI",dataIndex:"lookBi"},

{header:"修改",dataIndex:"UpdateBi",renderer:setIdCulomn}

}]

...

});

... [/code]

setIdCulomn方法中的参数id就是你UpdateBi的值,id只是一个参数名,你定义时可以写成其它名字,record对应的就是你这行的数据,比如record.data.UpdateBi就是id的值了,还可以record.data.bz这样来取得该行的备注列的值,其他的列都是一样

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Ext.GridPanel的columns里添加的items如何隐藏?
![图片说明](https://img-ask.csdn.net/upload/201611/14/1479107661_219597.png) ![图片说明](https://img-ask.csdn.net/upload/201611/14/1479107661_279029.png) Extjs为3.3 如果可以按条件隐藏某一行的那再好不过了,哪位大牛告知一下?
点击EXT gridpanel 后,已经选中的checkbox 全部失效
var gh_xz_fgtjmonth_store=new Ext.data.JsonStore({ url:"zbManage.html?m=getZbManageJson", baseParams : {DYear:''}, root:"results", totalProperty:"totalCount", fields:['zyzbid','zbmc','yearZbid'], listeners: { load: function(store) { var index = 0; store.each(function(record) { if(record.data.yearZbid !="") { sm.selectRow(index,true); } index++; }) } } }); //////数据加载的时候 yearZbid 不为空的 都要选中 可是每次点击gridpanel后,加载后选中的行都失效了 只剩下点击的行还在勾选。我需要最后勾选的要保存的,看看是不是得加个监听什么的? var sm = new Ext.grid.CheckboxSelectionModel(); var gh_xz_fgtjmonth_grid = new Ext.grid.GridPanel({ loadMask:true, store: gh_xz_fgtjmonth_store, autoScroll: true, width:xz_fgtjmonth.getComputedWidth(), //定义相关列头 columns: [ new Ext.grid.RowNumberer(), sm, {id:'zyzbid',header: "指标id", width: 100, sortable: true, dataIndex: 'zyzbid'}, {id:'zbmc', header: "指标名称", width: 50, sortable: true, dataIndex: 'zbmc'} ], sm:sm, stripeRows: true, autoHeight:true, }) });
ext gridPanel点击详细可以传多个参数吗
listGrid = new Ext.grid.GridPanel({ region : 'center', border : false, store : listStore, autoHeight:true, autoShow:true, columns : [{ header : '名称', dataIndex : 'name', width : 60, align : 'center', sortable : false, menuDisabled : true },{header : '操作', dataIndex : 'mapbarlonglat', align : 'center', sortable : false, menuDisabled : true, width : 60, renderer:function(value) { return "<a href='javascript:showDetail("+value+")'>&nbsp;&nbsp;&nbsp;详细&nbsp;&nbsp;&nbsp;</a>"; }}], 我想在详细里面在传2个参数这样可以吗
EXT中GridPanel的Header 显示问题
学习EXT的过程中遇到了一个问题,就是 GridPanel中的Columns属性下的Header属性无法在页面中显示,不知道是为什么, 代码如下 var grid = new Ext.grid.GridPanel({ store: store, ddGroup: 'treeDD', border: false, enableDrag: true, columns: [{ id: 'id', header: '用户ID', autoWidth: true, width: 80, dataIndex: 'id', sortable: true }, { header: '用户姓名', width: 80, dataIndex: 'name', sortable: true }, { header: '联系电话', width: 80, dataIndex: 'tele', sortable: true }], stripeRows: true, autoExpandColumn: 1 }); [b]问题补充:[/b] 就是一个表格,本该是这样的 用户ID 用户姓名 联系电话 1 XXX XXXXX 2 xxx xxxx 不过,最上面的 ’ 用户ID 用户姓名 联系电话‘这一行 不会显示任何东西,是空白一片 [b]问题补充:[/b] 我用的是2.2的,以前做毕设时 HEADER部分都可以正常显示,这次练习时反而显示不出来了 [b]问题补充:[/b] 说实话,这个也不是每次写GridPanel时都出现,是时不时的偶尔的不是经常的 好出现~~~我是没招了,不过在上面这段代码里 还是没能解决的了
Ext的columns某一列的展示格式修改
[size=medium][size=large][size=small][size=x-small]具体问题是这样的,我通过Ext.Ajax获取数据,通过GridPanel展示,但是在展示之前,我需要对columns中的某一列进行展示格式转化,好比Sql存储的是一个长整型数据,展示在页面的为ip地址格式,这样可以让该列展示的格式一致,具体转化方法已经实现,只是想知道如何改变columns的显示格式[/size][/size][/size][/size]
Ext.grid.GridPanel重用的问题
创建了一个grid,希望能够在两个不同的地方重用,第一个地方是放在content-panel,第二个地是放在window中,代码如下: [code="js"] //创建grid var grid1 = new Ext.grid.GridPanel({ id: 'grid1', store: store1, tbar: [ '搜索: ', ' ', new Ext.app.SearchField({ width:240, store: store1, paramName: 'q' }) ], columns: [ {header: "id", width: 120, hidden: true, dataIndex: 'id'}, {header: "业务系统名称", width: 120, sortable: true, dataIndex: 'systemName'}, {header: "业务功能编号", width: 120, sortable: true, dataIndex: 'functionID'}, {header: "业务功能名称", width: 120, sortable: true, dataIndex: 'functionName'} ], sm: new Ext.grid.RowSelectionModel({ singleSelect: true, listeners: { rowselect: function(sm, row, rec) { //action } } }), stripeRows: true, height:350, width:600, // paging bar on the bottom bbar: new Ext.PagingToolbar({ pageSize: 25, store: store1, displayInfo: true, displayMsg: 'Displaying records {0} - {1} of {2}', emptyMsg: "No records to display" }) }); //在content-panel中显示grid1 Ext.getCmp('content-panel').add(grid1); Ext.getCmp('content-panel').layout.setActiveItem('grid1'); grid1.store.load(); //在window中显示grid1 function showGrid1Window() { if(!win){ win = new Ext.Window({ layout:'fit', width:700, closeAction:'hide', plain: true, items: grid1, buttons: [{ text: 'Close', handler: function(){ win.hide(); } }] }); } grid1.store.reload(); //grid1.show(); win.show(); } [/code] 现在遇到了两个问题: 1、在content-panel中显示grid1后显示别的内容,grid1变为隐藏,这时再调用在window中显示grid1,grid1就无法显示,即使调用grid1.show()也没有用,怎么解决? 2、我希望能够在两个地方rowselect时有不同的处理,如何能够做到?即使我用最笨的办法,用同样的代码生成一个grid2,两个共用store1,只是rowselect中的处理不一样,但只要调用过一次grid1,那么grid2的rowselect也会变成跟grid1一样,不知是什么原因? [b]问题补充:[/b] 能解释一下为什么吗? 代码有这样一句:Ext.getCmp('content-panel').layout.setActiveItem('grid1');,去掉后会报错的 [b]问题补充:[/b] 第一个问题明白了,非常感谢 我刚才用了两个grid试了一下,发现第二个问题描述的不准确。操作是这样的: 显示grid1 -> 选择某一行(触发rowselect) -> 显示另外一个组件(隐藏grid1) -> 在window中显示grid2。 这时出现一个问题,grid1的rowselect自动被触发了,而且就是我刚才选的那行。两个grid的sm是分别定义的,请问是怎么回事? [b]问题补充:[/b] 找到原因了,是因为共用了store,只要一reload就会触发grid1上次的rowselect,但实在想不明白,谁能解释一下?
ext2.x中GridPanel本地数据分页的问题
由于数据量不多,大概3,40条,不分页又太长了,又不想服务器分页(很多东西写死了不好改),琢磨了一下怎么本地分页,还是没搞出来,请大家指点一下,我是用store的loadData把数据载入,PagingToolbar读到了数据,但是无法分页,也想不出来该怎么改了 [code="js"] cxtjFormPanel = Ext.extend(Ext.form.FormPanel,{ constructor:function(){ this.addEvents("query"); this.addEvents("reset"); cxtjFormPanel.superclass.constructor.call(this,{ autoHeight:true, baseCls:"x-plain", layout:"column", width:550, labelWidth:80, items:[ { columnWidth:.5, defaults:{width:160}, defaultType:"textfield", bodyStyle:"padding:5px", layout:"form", items:[ { fieldLabel:"案件登记序号", name:"ajdjXh", maxLength:14 },{ fieldLabel:"纳税人编码", name:"nsrbm", maxLength:20 } ] },{ columnWidth:.5, defaults:{width:160}, defaultType:"textfield", bodyStyle:"padding:5px", layout:"form", items:[ { fieldLabel:"案源登记序号", name:"aydjXh", maxLength:14 },{ fieldLabel:"纳税人名称", name:"nsrmc" } ] } ], buttons:[ { text:"查询", handler:function(){ try{ this.onQuery(); }catch(e){ return; } }, scope:this },{ text:"清空", handler:function(){ this.onReset(); }, scope:this } ] }); }, onQuery:function(){ if(this.getForm().isValid()) this.fireEvent("query",this.getForm()); else throw Error(); }, onReset:function(){ this.fireEvent("reset",this.getForm()); } }); ajxxGridPanel = Ext.extend(Ext.grid.GridPanel,{ data:null, constructor:function(){ this.addEvents("delete"); this.data = new Ext.data.JsonStore({ fields:["ajdjxh","aydjxh","nsrmc","ajmc","ajzt"] }), ajxxGridPanel.superclass.constructor.call(this,{ title:"案件信息列表", autoHeight:true, frame:true, width:660, loadMask:{msg:"正在加载,请稍后..."}, tbar:[ { text:"删除案件", handler:function(){ try{ this.onDelete(); }catch(e){ Ext.Msg.alert("提示","请选择要删除的案件!"); return; } }, scope:this },"-" ], columns:[ new Ext.grid.CheckboxSelectionModel(), {header:"案件编号",dataIndex:"ajdjxh",width:100}, {header:"案源编号",dataIndex:"aydjxh",width:100}, {header:"纳税人名称",dataIndex:"nsrmc",width:170}, {header:"案件名称",dataIndex:"ajmc",width:170}, {header:"案件状态",dataIndex:"ajzt",width:110} ], store:this.data, // bbar: new Ext.PagingToolbar({ // pageSize: 10, // store:this.data, // displayInfo: true, // displayMsg: '第{0} 到 {1} 条数据 共{2}条', // emptyMsg: "没有数据" // }), sm:new Ext.grid.RowSelectionModel({ singleSelect:true }) }); }, loadData:function(_data){ this.getStore().loadData(_data,false); }, onDelete:function(){ if(this.getSelectionModel().getCount()>0) this.fireEvent("delete",this,this.getStore(),this.getSelectionModel().getSelected()); else throw Error(); } }); ViewPanel = Ext.extend(Ext.Panel,{ form:null, grid:null, constructor:function(){ this.form = new cxtjFormPanel(); this.grid = new ajxxGridPanel(); ViewPanel.superclass.constructor.call(this,{ title:"删除案件信息", plain:true, frame:true, autoHeight:true, //height:450, items:[ this.form, this.grid ] }); } }); Ext.onReady(function(){ Ext.QuickTips.init(); Ext.form.TextField.prototype.msgTarget = "side"; var _view = new ViewPanel(); _view.render(Ext.getBody()); _view.form.on("query",function(_form){ //_form["waitMsgTarget"] = this.getEl(); _form.submit({ url:"/qt/qt036JcScajxxExt-query.pfv", waitMsg:"正在查询,请稍后...", success:function(_f,_a){ this.grid.loadData(_a.result.data); }, failure:function(_f,_a){ Ext.Msg.alert("错误","查询失败!"); }, scope:this }); },_view); _view.form.on("reset",function(_form){ _form.reset(); },_view); _view.grid.on("delete",function(_grid,_store,_record){ Ext.Msg.confirm("提示","是否删除案件["+_record.data.ajmc+"]?",function(_btn){ if(_btn=="yes"){ this.grid.getEl().mask("正在删除,请稍后..."); Ext.Ajax.request({ url:"/qt/qt036JcScajxxExt-delete.pfv", params:{ajdjXh:_record.data.ajdjxh,aydjXh:_record.data.aydjxh}, success:function(_response){ var _result = Ext.util.JSON.decode(_response.responseText); if(_result.state == "info"){ _store.remove(_record); } Ext.Msg.alert("提示",_result.message); this.grid.getEl().unmask(); }, failure:function(){ Ext.Msg.alert("错误","删除案件失败!"); this.grid.getEl().unmask(); }, scope:this }); } },this) },_view); }); [/code]
Ext.data.GridPanel is not constructor 错误如何处理?
<pre name="code" class="java"> &lt;script type="text/javascript"&gt; Ext.onReady(function(){ var _grid=new Ext.data.GridPanel({ renderTo:Ext.getBody(), store:new Ext.data.JsonStore({ data:[{name:"余学武",age:31,sex:"男"},{name:"方丽",age:27,sex:"女"}], fields:["name","age","sex"] }), columns:[{header:'姓名',indexData:'name'},{header:'年龄',indexData:'age'},{header:'性别',indexData:'sex'}] }); }); &lt;/script&gt; </pre><br /><strong>问题补充</strong><br />找了很久都没有找到错在那里,请各位老大帮忙看看,谢谢了
Ext.grid.GridPanel不显示数据怎么解决?
Ext.onReady(function() { var ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: "GetQuestionList.aspx", method: 'GET' }), reader: new Ext.data.JsonReader( { root: 'data', totalProperty: 'totalCount' }, [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct' }, { name: 'state', mapping: 'state'}] ) }); var pagingBar = new Ext.PagingToolbar({ pageSize: 5, store: ds, displayInfo: true, displayMsg: 'Displaying topics {0} - {1} of {2}', emptyMsg: "No topics to display" }); var gv = new Ext.grid.GridPanel({ title: '问题列表', el: 'divGvList', width: 800, height: 500, autoScroll: true, loadMask: { msg: '正在加载数据,请稍侯……' }, store: ds, columns: [ new Ext.grid.RowNumberer(), { header: '标题', dataIndex: 'title', sortable: true }, { header: '分类', dataIndex: 'type', sortable: true }, { header: '时间', dataIndex: 'ct', sortable: true, renderer: Ext.util.Format.dateRenderer('Y.m.d') }, { header: '回复状态', dataIndex: 'state', sortable: true } ], bbar: pagingBar }); gv.render(); ds.load({ params: { start: 0, limit: 5} }); }); 这个GetQuestionList.aspx页面我单独用在ie地址栏输入GetQuestionList.aspx?start=0&limit=5,页面输出如下数据 { 'data': [ { 'title': '0_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '1_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '2_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '3_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '4_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '5_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '6_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '7_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '8_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true }, { 'title': '9_标题', 'type': '分类', 'ct': '2009-7-3 11:49:58', 'state': true } ], 'totalCount': 10 } 不知道为什么就是显示不了数据,请大家帮忙看看到底问题出在哪了? [b]问题补充:[/b] 我试了,还是不行 [b]问题补充:[/b] 郁闷,还是不行,不知道怎么回事 现在我加了alert(ds.getCount());,弹出的提示是0 是不是表示数据集中没有数据? [b]问题补充:[/b] 都不是你们说的这些问题,我调试看了,可能是异步请求的问题 ds.load({ params: { start: 0, limit: 5 }, callback: function(r, options, success) { alert(r.length); if (success) { alert(r.length); } else { alert("加载数据失败,无对应数据或者系统出现异常!");} } }); 我这样执行后,r.length总是0, success的值为false 有没有人知道是怎么回事 [b]问题补充:[/b] 问题解决了,GetQuestionList.aspx页面代码Response.Write(jsonStr);执行后还要加上 Response.Flush(); Response.Close();这两句代码,数据才能发送到客户端,那个回调函数success的值为true了,总算搞定了,不过还是要感谢各位帮忙!
ext4:怎么更新bbar中分页的store.
store的fields和panel的columns根据不同的查询条件都是动态生成的。当第二次查询的时候调用reconfigure方法可以动态修改fields和columns的值,可是分页栏的store没办法相应的修改。代码如下: pageBar = Ext.create('Ext.PagingToolbar', { store: codeTabStore, displayInfo: true, displayMsg: '当前显示第 {0} - {1} 条,总共 {2}条', emptyMsg: "没有数据" }) ; if(gridPanel){ gridPanel.reconfigure(codeTabStore, config.columns); //修改pagebar中的store值 //???? }else{ gridPanel = Ext.create('Ext.grid.Panel', { title: '代码表管理', x: 5, y: 10, store: codeTabStore, columns: config.columns, sortableColumns: false, enableColumnMove: false, autoScroll:true, bbar: pageBar }) }
关于EXTJS中gridPanel例子的问题
<p>最近在接触EXTJS....网上找了个简明实用教程,照着写代码练习,遇上了让我头爆的郁闷问题:<br>以下这两段代码有哪里不一样?我自己照着写的,运行就报错:<br>错误信息:</p> <p> </p> <pre name="code" class="java">消息: 'undefined' 为空或不是对象 行: 10113 字符: 9 代码: 0 URI: http://localhost:8888/learnEXTJS/js/extjs/ext-all.js</pre>   <p>我照着例子敲的代码:</p> <p> </p> <pre name="code" class="js">Ext.onReady(function(){ alert("sss"); var data = [[1,'EasyJWeb','EasyJF','www.easyjf.com'],[2,'jfox','huihoo','www.huihoo.org'],[3,'jdon','jdon','www.jdon.com'],[4,'springside','springside','www.springside.org.cn'],]; var store = new Ext.data.SimpleStore({data:data,fields:["id","name","organization","homepage"]}); var grid = new Ext.grid.GridPanel({ renderTo:"divId", title:"中国Java开源产品及团队", height:150, width:600, columns:[{header:"项目名称",dataIndex:"name"}, {header:"开发团队",dataIndex:"organization"}, {header:"网址",dataIndex:"homepage"}], store:store, autoExpandColumn:2 }); });</pre> <p> </p> <p>复制的代码:</p> <p> </p> <pre name="code" class="java">Ext.onReady( function() { var data = [ [ 1, 'EasyJWeb', 'EasyJF', 'www.easyjf.com' ], [ 2, 'jfox', 'huihoo', 'www.huihoo.org' ], [ 3, 'jdon', 'jdon', 'www.jdon.com' ], [ 4, 'springside', 'springside', 'www.springside.org.cn' ] ]; var store = new Ext.data.SimpleStore( { data : data, fields : [ "id", "name", "organization", "homepage" ] }); var grid = new Ext.grid.GridPanel( { renderTo : "divId", title : "中国Java开源产品及团队", height : 150, width : 600, columns : [ { header : "项目名称", dataIndex : "name" }, { header : "开发团队", dataIndex : "organization" }, { header : "网址", dataIndex : "homepage" } ], store : store, autoExpandColumn : 2 }); });</pre> <p><span style="color: #ff0000;"> 复制的代码正常运行..................................</span></p> <p> </p> <p>敲的代码是小妈生的么。。。就这么不待见。。。。。</p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p>。</p>
ext4 grid显示问题
<pre name="code" class="html">&lt;head runat="server"&gt; &lt;title&gt;Ext-Example&lt;/title&gt; &lt;link rel="Stylesheet" type="text/css" href="ext-4.0-pr5/resources/css/ext-all.css" /&gt; &lt;script type="text/javascript" src="ext-4.0-pr5/bootstrap.js"&gt;&lt;/script&gt; &lt;script type="text/javascript"&gt; Ext.onReady(function(){ Ext.define('MyData',{ extend:'Ext.data.Model', fields:[ {name:'UserName',mapping:'UserName'}, 'Sex', 'Age', 'XueHao', 'BanJi' ] }); var store=Ext.create('Ext.data.Store',{ model:'MyData', proxy:{ type:'ajax', url:'Default.aspx', reader:{ type:'json', root:'items' } }, autoLoad:true }); var grid=Ext.create('Ext.grid.GridPanel',{ store:store, columns:[ {text:"姓名",width:120,dataIndex:'UserName',sortable:true}, {text:"性别",flex:1,dataIndex:'Sex',sortable:false}, {text:"年龄",width:100,dataIndex:'Age',sortable:true}, {text:"学号",width:100,dataIndex:'XueHao',sortable:true}, {text:"班级",width:100,dataIndex:'BanJi',sortable:true} ], height:400, width:480, x:20, y:40, title:'ExtJS4 Grid示例', renderTo:'demo', viewConfig:{ stripeRows:true } }); }); &lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;form id="form1" runat="server"&gt; &lt;div id="demo"&gt; &lt;/div&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</pre> <p> 什么也不显示,var grid=Ext.create('Ext.grid.Panel'改成GridPanel就出现个表一直在呢loading没有数据</p>
请教ext 高级查询问题?
Ext.onReady(function() { Ext.QuickTips.init();// 支持tips提示 Ext.form.Field.prototype.msgTarget = 'side';// 提示的方式,枚举值为"qtip","title","under","side",id(元素id) // 高级查询panel var formPanel = new Ext.FormPanel({ title : "高级查询", border : false, height : 60, autoWidth : true, layout : "table", width : 50, url : "/exttext/UserMessageServlet", items : [{ style : "margin-left: 20", border : false, layout : "form", labelWidth : 70, items : [{ style : "margin-top: 5", xtype : 'textfield', fieldLabel : "商家姓名", id : 'smsName', name : "smsName", maxLength : 20, allowBlank : false }] }, { border : false, items : [{ xtype : 'button', type : "submit", text : "提交", style : "margin-left: 60", handler : function() { formPanel.getForm().submit(); } }] }] }); // 定义远程代理 var proxy = new Ext.data.HttpProxy({ url : "/exttext/UserMessageServlet" }); // 解析器 var reader = new Ext.data.XmlReader({ totalRecords : "results",// 分页条数 record : "CimUser"// 服务端返回对象的名字,这里一定不能写 root }, Ext.data.Record.create([{ name : "userId" }, { name : "userName" }, { name : "userLoginId" }, { name : "userSuperId" }])); // 定义数据源对象(必须定义) var store = new Ext.data.Store({ autoLoad : true,// 应该是自动加载 reader : reader// 解析器 , proxy : proxy,// 代理 params : { start : 0, limit : 3 } }); // 创建Grid表格组件 相关于sm var checkboxSelectionModel = new Ext.grid.CheckboxSelectionModel(); // 定义行号 var rowNum = new Ext.grid.RowNumberer({ header : '行号', width : 40 }); // 分页 var bbr = new Ext.PagingToolbar({ store : store, pageSize : 3, displayInfo : true, displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg : "没有记录", beforePageText : "当前是第 " }) // 主panel var gridPanel = new Ext.grid.GridPanel({ title : "商家信息", collapsible : true, store : store, height : 480, stripeRows : true,// 分隔符 sm : checkboxSelectionModel, viewConfig : { autoFill : true }, bbar : bbr, columns : [// 配置表格列 rowNum, // 表格行号组件 checkboxSelectionModel, { header : "编号", dataIndex : 'userId', sortable : true }, { header : "名称", dataIndex : 'userName', sortable : true }, { header : "登录ID", dataIndex : 'userLoginId', sortable : true }, { header : "父级编号", dataIndex : 'userSuperId', sortable : true }, { header : "操作", dataIndex : "userId", renderer : function(value, cellmeta, record, rowIndex, columnIndex, store) { var userId = record.get("userId"); var userSuperId = record.get("userSuperId"); var str = "<input type='button' value='查看' onclick='button(" + userId + "," + userSuperId + ")'/>"; return str; }, renderer : function(value, cellmeta, record, rowIndex, columnIndex, store) { var userId1 = record.get("userId"); var userSuperId1 = record.get("userSuperId"); var str1 = "<input type='button' value='优先' onclick='button(" + userId1 + "," + userSuperId1 + ")'/>"; return str1; } }] }); // 布局panel var panel = new Ext.Viewport({ layout : "border", border : true, collapsible : true, items : [{ region : "north", height : 60, title : "", items : [formPanel] }, { region : "center", items : [gridPanel], autoHeight : true }] }) }) function button(userName, userSuperId) { alert("userMessage:" + userName + " " + userSuperId); } Ext.onReady(function() { Ext.QuickTips.init();// 支持tips提示 Ext.form.Field.prototype.msgTarget = 'side';// 提示的方式,枚举值为"qtip","title","under","side",id(元素id) // 高级查询panel var formPanel = new Ext.FormPanel({ title : "高级查询", border : false, height : 60, autoWidth : true, layout : "table", width : 50, url : "/exttext/UserMessageServlet", items : [{ style : "margin-left: 20", border : false, layout : "form", labelWidth : 70, items : [{ style : "margin-top: 5", xtype : 'textfield', fieldLabel : "商家姓名", id : 'smsName', name : "smsName", maxLength : 20, allowBlank : false }] }, { border : false, items : [{ xtype : 'button', type : "submit", text : "提交", style : "margin-left: 60", handler : function() { formPanel.getForm().submit(); } }] }] }); // 定义远程代理 var proxy = new Ext.data.HttpProxy({ url : "/exttext/UserMessageServlet" }); // 解析器 var reader = new Ext.data.XmlReader({ totalRecords : "results",// 分页条数 record : "CimUser"// 服务端返回对象的名字,这里一定不能写 root }, Ext.data.Record.create([{ name : "userId" }, { name : "userName" }, { name : "userLoginId" }, { name : "userSuperId" }])); // 定义数据源对象(必须定义) var store = new Ext.data.Store({ autoLoad : true,// 应该是自动加载 reader : reader// 解析器 , proxy : proxy,// 代理 params : { start : 0, limit : 3 } }); // 创建Grid表格组件 相关于sm var checkboxSelectionModel = new Ext.grid.CheckboxSelectionModel(); // 定义行号 var rowNum = new Ext.grid.RowNumberer({ header : '行号', width : 40 }); // 分页 var bbr = new Ext.PagingToolbar({ store : store, pageSize : 3, displayInfo : true, displayMsg : '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg : "没有记录", beforePageText : "当前是第 " }) // 主panel var gridPanel = new Ext.grid.GridPanel({ title : "商家信息", collapsible : true, store : store, height : 480, stripeRows : true,// 分隔符 sm : checkboxSelectionModel, viewConfig : { autoFill : true }, bbar : bbr, columns : [// 配置表格列 rowNum, // 表格行号组件 checkboxSelectionModel, { header : "编号", dataIndex : 'userId', sortable : true }, { header : "名称", dataIndex : 'userName', sortable : true }, { header : "登录ID", dataIndex : 'userLoginId', sortable : true }, { header : "父级编号", dataIndex : 'userSuperId', sortable : true }, { header : "操作", dataIndex : "userId", renderer : function(value, cellmeta, record, rowIndex, columnIndex, store) { var userId = record.get("userId"); var userSuperId = record.get("userSuperId"); var str = "<input type='button' value='查看' onclick='button(" + userId + "," + userSuperId + ")'/>"; return str; }, renderer : function(value, cellmeta, record, rowIndex, columnIndex, store) { var userId1 = record.get("userId"); var userSuperId1 = record.get("userSuperId"); var str1 = "<input type='button' value='优先' onclick='button(" + userId1 + "," + userSuperId1 + ")'/>"; return str1; } }] }); // 布局panel var panel = new Ext.Viewport({ layout : "border", border : true, collapsible : true, items : [{ region : "north", height : 60, title : "", items : [formPanel] }, { region : "center", items : [gridPanel], autoHeight : true }] }) }) function button(userName, userSuperId) { alert("userMessage:" + userName + " " + userSuperId); } 现在的情况是:能正常显示,正常分页,但有点高级查询时,服务端能正常输出查询的XML,分页数也正常,但客户端却说语法错误,小第在此求解决办法,谢谢了???????????
ext 显示问题
[code="java"]Ext.onReady(function(){ // example of custom renderer function function pctChange(val){ if(val > 0){ return '<span style="color:red;">未激活</span>'; }else if(val <= 0){ return '正常'; } return val; } var recordType = Ext.data.Record.create([ { name : 'id', type : 'float', mapping : 'id' }, { name : 'username', type : 'string', mapping : 'username' }, { name : 'pwd', type : 'string', mapping : 'pwd' }, { name : 'state', type : 'float', mapping : 'state' }]); // create the data store var store = new Ext.data.Store( { proxy : new Ext.data.HttpProxy( { url : 'User/doGetUserList.action' }), // set up the JsonReader reader : new Ext.data.JsonReader( { root : 'list', id : 'id' }, recordType) }); store.load(); var sm = new Ext.grid.CheckboxSelectionModel( { singleSelect : false }); // create the Grid var grid = new Ext.grid.GridPanel({ store: store, columns: [ new Ext.grid.RowNumberer(), {id:'id',header: "id", width: 160, sortable: true, dataIndex: 'id'}, {header: "姓名", width: 75, sortable: true, dataIndex: 'username'}, {header: "密码", width: 75, sortable: true, dataIndex: 'pwd'}, {header: "状态", width: 75, sortable: true, renderer: pctChange, dataIndex: 'state'}, sm ] }); grid.render('grid'); grid.getSelectionModel().selectFirstRow(); });[/code] 运行后数据有多条,但是只显示一条
Ext 重复显示问题
我有这样一个超链接 <a id="view-all" href="#" onclick="return fun()">管理员管理</a> fun的代码如下 [code="javascript"] var fun = function() { Ext.Ajax.request({ url : 'admin.lwf?method=getAllAdmin', params : { action : 'getDate' }, method : 'GET', success : function(result, request) { panel2.setTitle("管理员管理"); var myData = eval(result.responseText); function change(val){ if(val == 0){ return '<span style="color:green;">女</span>'; }else if(val == 1){ return '<span style="color:red;">男</span>'; } return val; } function changeRole(val){ if(val == 1){ return '<span style="color:green;">普通用户</span>'; }else if(val == 2){ return '<span style="color:red;">管理员</span>'; } return val; } function wen(val){ return '<a href="#" onclick="return deletefun('+val+')">删除</a>'; } // create the data store var store = new Ext.data.SimpleStore({ fields : [{ name : 'nickname' }, { name : 'email' }, { name : 'password' }, { name : 'gender' }, { name : 'registerTime' }, { name : 'grade' }, { name : 'point' }, { name : 'role' }, { name : 'intro' },{ name : 'opera' }] }); store.loadData(myData); // create the Grid var grid = new Ext.grid.GridPanel({ store : store, columns : [{ id : 'nickname', header : "昵称", width : 75, sortable : true, dataIndex : 'nickname' }, { header : "Email", width : 150, sortable : true, dataIndex : 'email' }, { header : "密码", width : 75, sortable : true, dataIndex : 'password' }, { header : "性别", width : 30, sortable : true, renderer:change, dataIndex : 'gender' }, { header : "注册时间", width : 150, sortable : true, dataIndex : 'registerTime' }, { header : "等级", width : 30, sortable : true, dataIndex : 'grade' }, { header : "积分", width : 30, sortable : true, dataIndex : 'point' }, { header : "角色", width : 60, sortable : true, renderer:changeRole, dataIndex : 'role' }, { header : "简介", width : 200, sortable : true, dataIndex : 'intro' },{ header : "操作", width : 50, sortable : true, dataIndex : "opera", renderer:wen } ], stripeRows : true, autoExpandColumn : 'nickname', height : 350, width : 'auto', title : '管理员列表' }); grid.render('grid-example'); }, failure : function(result, request) { Ext.MessageBox.alert('Failed', 'Successfully posted form: ' + action.date); } }); } [/code] 点击链接后会在panel2中显示 panel2 = new Ext.Panel({ title : "center", autoDestroy:'true', html : "<div id='grid-example'></div>", tools : [{ id : 'minimize', handler : function(event, toolEl, panel) { } }, { id : 'maximize' }, { id : 'close' }] }); 现在问题是:我连续点击链接两次的话,会在panel2中显示两个GridPanel,请问这是什么原因,应该怎么修改代码让GridPanel只显示 一次?
GridPanel不显示数据
这段代码中,页面加载时,firebug显示processList.action被调用了两次,这是为什么?另外,选中一条数据,点击“流程定义”按钮后,仅弹出窗口,却不显示数据,但firebug显示数据已经加载了,究竟是哪儿有问题?请大家帮忙看看 Ext.ns('Flow.processList'); Flow.processList = function(){ var store; var sm; var colModel; var grid; return{ getStore:function(){ store = new Ext.data.JsonStore({ root: 'result', totalProperty: 'totalCount', remoteSort:false, storeId: 'processListId', autoDestroy: true, fields:['processId','processName','processVersion'], proxy: new Ext.data.HttpProxy({ url: 'processList.action' }), autoLoad: true, sortInfo: {field:'processId',direction: 'ASC'} }); //store.load(); return store; }, getSmModel: function(){ sm = new Ext.grid.CheckboxSelectionModel({ handleMouseDown: Ext.emptyFn //点击行时,不选中此行,要使的点击时,自动选中行,去掉此参数 }); return sm; }, getColModel:function(){ colModel = new Ext.grid.ColumnModel({ columns: [ new Ext.grid.RowNumberer(), { header: "流程ID",dataIndex:'processId', sortable: true}, { header: "流程名称",dataIndex:'processName'}, { header: "流程版本",dataIndex:'processVersion'}, this.getSmModel(), ], defaults: { sortable: true } }); return colModel; }, getGrid:function(){ grid = new Ext.grid.GridPanel({ id: 'processListGrid', title:'流程列表', store: this.getStore(), cm: this.getColModel(), //colModel: this.colModel, sm: this.getSmModel(), viewConfig:{ forceFit: true }, tbar: [{ iconCls: '', text: '启动流程', handler:this.startProcess },'-',{ iconCls: '', text: '删除流程', //disabled: true, handler: this.removeProcess },'-', { iconCls: '', text: '流程定义', handler: this.getProcessDefinition },'-',{ iconCls: '', text: '流程图', handler: this.getProcessImage } ], bbar: new Ext.PagingToolbar({ pageSize: 10, store: this.getStore(), displayInfo: true, displayMsg: '显示流程 {0} - {1} of {2}', emptyMsg: "没有流程可显示", items:[ '-', { pressed: true, enableToggle:true, text: 'Show Preview', cls: 'x-btn-text-icon details', toggleHandler: function(btn, pressed){ var view = grid.getView(); view.showPreview = pressed; view.refresh(); } }] }) }); return grid; }, startProcess: function(){ if(!sm){ sm = this.getSmModel(); } var s = sm.getSelections() var process = s[0].data.processId; if(!process){ Ext.Msg.alert('信息','未选择任何流程'); return false; } else{ Ext.Ajax.request({ url: 'startProcess.action?processId=' + process, success: function(response, opts) { var json = response.responseText||response.responseData; var result = Ext.decode(json); Ext.Msg.alert('信息',result.message); }, failure: function() { Ext.Msg.alert("错误","启动流程失败!"); }, scope: this }); } }, removeProcess: function(){ if(!sm){ sm = this.getSmModel(); } var s = sm.getSelections() var process = s[0].data.processId; if(!process){ Ext.Msg.alert('信息','未选择任何流程'); return false; } else{ Ext.Ajax.request({ url: 'deleteProcess.action?processId=' + process, success: function(response, opts) { var json = response.responseText||response.responseData; var result = Ext.decode(json); Ext.Msg.alert('信息',result.message); }, failure: function() { Ext.Msg.alert("错误","删除流程失败!"); }, scope: this }); } }, getProcessDefinition: function(){ if(!sm){ sm = this.getSmModel(); } var s = sm.getSelections() var process = s[0].data.processId; if(!process){ Ext.Msg.alert('信息','请选择要查看的流程'); return false; } else{ var processGrid = new Ext.grid.GridPanel({ store: new Ext.data.JsonStore({ root: 'resultSet', autoDestroy: true, fields:['processDefinition'], proxy: new Ext.data.HttpProxy({ url: 'processDefinition.action?processId='+process }), autoLoad: true }), columns: [ {header: "流程定义", dataIndex: 'processDefinition'} ], viewConfig: { forceFit: true, }, sm: new Ext.grid.RowSelectionModel({singleSelect:true}), // width:600, // height:300, frame:true, title:'', iconCls:'icon-grid' }); var win = new Ext.Window({ id: 'processWin', width: 600, height: 300, title: '流程定义', plain: true, closable: true, //resizable: false, frame: true, layout: 'fit', autoScroll: true, border: false, modal: true, items:[processGrid] }); win.show(); } }, getProcessImage: function(){ //TODO }, render: function(tab){ if(!this.grid){ this.grid = this.getGrid(); tab.add(this.grid); } } } }; Ext.onReady(function(){ var win = new Ext.Window({}); var f = new Flow.processList(); f.render(win); win.show(); });
关于ext入门的数据显示问题
前台代码 Ext.onReady(function(){ var newFormWin; var userform; var data = [ ['1', '2','3'], ['2', '2','3'], ['3', '2','3'] ]; // create the Data Store 数据 var store = new Ext.data.Store({ reader:new Ext.data.ArrayReader({ fields : [ {name : 'member_id',type : 'string'}, {name : 'member_name',type : 'string'} , {name : 'parent_id',type : 'string'} ] //new Ext.data.ArrayReader({ // root: data, //totalProperty: 1, // fields:["member_id","member_name","parent_id"] }), // load using script tags for cross domain, if the data in on the same domain as // this page, an HttpProxy would be better proxy:new Ext.data.MemoryProxy(data) //new Ext.data.HttpProxy({ //url: 'http://localhost:8088/manager/getList.action' //}) }); store.load({params:{start:0, limit:10}}); //分页显示用户数据 var grid = new Ext.grid.GridPanel({ autoHeight : true, width:700,//宽度 //height:300,//高度 title:'用户信息表', store: store,//数据 //加载的图标是否显示 loadMask: false, //单行选中 // grid columns列 columns:[ // new Ext.grid.CheckboxSelectionModel({singleSelect : false}),//复选框 //new Ext.grid.RowNumberer(),//序号 { // id assigned so we can apply custom css (e.g. .x-grid-col-topic b { color:#333 }) header: "用户名", dataIndex: 'member_id', //align: 'center', sortable: false },{ header: "年龄", dataIndex: 'member_name', //align: 'center', sortable: false },{ header: "电话", dataIndex: 'parent_id', //align: 'center', sortable: false }] }); // render it显示的层 grid.render('grid'); // trigger the data store load 加载用户 }) </script> </head> <body> <div id="grid"></div> </body> ``` 后台代码 public String getList() throws IOException{ HttpServletResponse response=ServletActionContext.getResponse(); try{ // String json= "{"+ // "metaData:{"+ // " totalProperty:'results',"+ // "root:'rows',"+ // "fields:["+ // "{name:'member_id',mapping:'member_id'},"+ // "{name:'member_name',mapping:'member_name'},"+ // // // "{name:'parent_id',mapping:'parent_id'}"+ // // // "]"+ // // "},"+ // "results:"+1+","+ // "rows:[{member_id:'1',member_name:'zhangsan',parent_id:'3'}]"+ // // "}"; // response.setCharacterEncoding("utf-8"); // System.out.print(json.toString()); // response.getWriter().write("{metaData:{ totalProperty:'results',root:'rows',fields:[{name:'member_id',mapping:'member_id'},{name:'member_name',mapping:'member_name'},{name:'parent_id',mapping:'parent_id'}]},results:1,rows:[{member_id:'1',member_name:'2',parent_id:'3'}]}"); response.getWriter().write("{totalProperty:1,data:[{member_id:'1',member_name:'2',parent_id:'3'},{member_id:'1',member_name:'2',parent_id:'3'}]}"); }catch(Exception e){ } return null; } 之前在网上试了好几种例子,后台传的json字符串改了不知道多少次,前台页面一直是个loading,后来换成直接在前台把json数据写死,loading没了,也没数据。我是刚接触ext,不知道这是什么问题,不像java或者js,可以报错还能定位到问题。 ![图片说明](https://img-ask.csdn.net/upload/201512/11/1449798974_130590.png)
extjs中如何用GridPanel显示xml格式的数据
我代码运行时没有报错误,就是显示不出来我要的数据 extjs代码如下: Ext.onReady(function(){ //Ext.BLANK_IMAGE_URL="../Ext/resources/images/default/s.gig"; //记录类型 var Person=new Ext.data.Record.create( [ {name:"id",mapping:"id"}, {name:"name",mapping:"name"}, {name:"age",mapping:"age"}, {name:"homePage",mapping:"homePage"} ] ); //存储器 var store=new Ext.data.Store({ url:"data.xml", reader:new Ext.data.XmlReader({ record: "row", id:"id"},Person) }); store.load(); //表格面板 var gridPanel=new Ext.grid.GridPanel({ id:"gridPanel", renderTo:"hello", title:"人员信息", width:500, height:300, store:store, columns:[ {header:"id",dataIndex:"id",sortable:true}, {header:"姓名",dataIndex:"name",sortable:true}, {header:"年龄",dataIndex:"age",sortable:true}, {header:"个人主页",dataIndex:"homePage",sortable:true} ], autoExpandColumn:3 //默认自动扩展宽度的字段。 }); }); xml数据如下: <?xml version="1.0" encoding="UTF-8"?> <dataset> <row> <id>1</id> <name>张三</name> <age>34</age> <homePage>www.ibeifeng.com</homePage> </row> <row> <id>2</id> <name>李斯</name> <age>12</age> <homePage>www.ibeifeng.com</homePage> </row> <row> <id>3</id> <name>王五</name> <age>90</age> <homePage>www.163.com</homePage> </row> <row> <id>4</id> <name>赵六</name> <age>23</age> <homePage>www.163.com</homePage> </row> <row> <id>5</id> <name>小龙</name> <age>23</age> <homePage>www.cctv.com</homePage> </row> <row> <id>6</id> <name>还炸</name> <age>23</age> <homePage>www.163.com</homePage> </row> </dataset> 我用的是Extjs3,不知有没有什么版本的问题。。。 请各位大神指点!
Ext.PagingToolbar翻页问题
我在服务器aspx页面获取当前页码第一次加载页面正常,是0和10 点下一页的时候我调试发现start的值是10,但是limit的值还是正常10 服务器端代码是这样写的,请问有人知道是什么原因吗? int start = Convert.ToInt32(Request.Params["start"].Trim()); int limit = Convert.ToInt32(Request.Params["limit"].Trim()); 这里是extjs代码 Ext.onReady(function() { var ds = new Ext.data.Store({ url: "GetQuestionList.aspx", reader: new Ext.data.JsonReader( { root: 'datalist', totalProperty: 'totalCount' }, [{ name: 'title', mapping: 'title' }, { name: 'type', mapping: 'type' }, { name: 'ct', mapping: 'ct', type: 'date', dateFormat: 'Y-n-j H:i:s' }, { name: 'state', mapping: 'state' } ] ) }); var pagingBar = new Ext.PagingToolbar({ pageSize: 10, store: ds, displayInfo: true, displayMsg: '当前显示 {0} - {1} 共有记录 {2}', emptyMsg: "No topics to display" }); var gv = new Ext.grid.GridPanel({ title: '问题列表', el: 'divGvList', loadMask: { msg: '正在加载数据,请稍侯……' }, store: ds, viewConfig: { forceFit: true }, columns: [ new Ext.grid.RowNumberer(), { header: '标题', dataIndex: 'title', sortable: true }, { header: '分类', width: 150, dataIndex: 'type', sortable: true }, { header: '时间', width: 100, dataIndex: 'ct', sortable: true, renderer: Ext.util.Format.dateRenderer('Y.m.d H:i') }, { header: '回复状态', width: 80, dataIndex: 'state', sortable: true } ], bbar: pagingBar }); gv.render(); ds.load({ params: { start: 0, limit: 10 }, callback: function(r, options, success) { if (!success) { alert("加载数据失败,无对应数据或者系统出现异常!"); } } }); }); [b]问题补充:[/b] 点下一页的时候我调试发现start的值是10,但是limit的值还是正常10 可能是我没说清楚,limit的值正常,每页显示10条这个是正常的 我说的问题是start的值变成10了,这个不正常,加载完页面点下一页应该1 不应该是10,因为第一次params: { start: 0, limit: 10 }指定为0了
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
立即提问