ext grid分页问题

ext grid在firefox可以分页,但是在ie、遨游中却不相应分页,为什么?

2个回答

start和limit一定要写对
后台如果有必要也要配合好

分页对象写的有问题!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ext grid分页出错问题
我要做ext grid分页,按例子做一直做不出来,在firebug上显示错误如下: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest.open]" nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)" location: "JS frame :: javascript: eval(__firebugTemp__); :: anonymous :: line 1" data: no] 而且好像没用调用到HttpProxy中设置的action. HttpProxy设置的url为:./adminList.do 我的js文件目录在\WebRoot\js\jsfile\中,名为superAdminConsole.js, 我的action的path为/adminList .这样设置HttpProxy的url应该没有错吧,而且我也设置过../adminList.do或者是/adminList.do和adminList.do,结果都不行. 只要把store加到grid上就报上面的错,而且后台并没有显示调用到action中的方法. 具体代码如下: superAdminConsole.js (节选与grid相关的): [code="java"] var AdminRecord = new Ext.data.Record.create([ {name:'id'}, {name:'username'}, {name:'realname'}, {name:'gender'}, {name:'role'}, {name:'department'} ]); var adminReader = new Ext.data.JsonReader({ totalProperty:"results", root:"rows", id:"id" },AdminRecord); var adminStore = new Ext.data.JsonStore({ proxy:new Ext.data.HttpProxy({url:'./adminList.do'}), reader:adminReader }); //执行这句时出错的 adminStore.load({params:{start:0,limit:10}}); //Admin列表 var adminListGrid = new Ext.grid.GridPanel({ title:"Admin列表", height:380, columns:[new Ext.grid.RowNumberer(), {header:"Id",dataIndex:"id",sortable:true,hidden:true}, {header:"用户名",dataIndex:"username",sortable:true}, {header:"真实姓名",dataIndex:"realname",sortable:true}, {header:"性别",dataIndex:"gender",renderer:showGender}, {header:"角色",dataIndex:"role"}, {header:"部门",dataIndex:"department",sortable:true}], store:adminStore, bbar:new Ext.PagingToolbar({ pagesize:10, store:adminStore, displayInfo:true, displayMsg:'显示第{0}到{1}条数据,共{2}条', emptyMsg:"没有数据", beforePageText:"第", afterPageText:'页 共{0}页' }) }); [/code] adminList.do 文件: [code="java"] public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { SuperAdminBean superAdmin = (SuperAdminBean)request.getSession().getAttribute("person"); String start = request.getParameter("start"); String limit = request.getParameter("limit"); System.out.println(start + " " + limit); JSONObject json = null; try { int index = Integer.parseInt(start); int pageSize = Integer.parseInt(limit); List adminList = superAdmin.listCustomersByRole("Admin"); json = JSONUtil.toJSONForPage(adminList,0,10); //为了显示是否输入正确的json. System.out.println(json.toString()); response.getWriter().write(json.toString()); } catch(Exception ex) { } return null; } 输出的json为: {"results":21,"rows":[{"department":"市场部","gender":"male","id":2,"post":"","realname":"leikai","role":"Admin","username":"lk"},{"department":"市场部","gender":"male","id":4,"post":"","realname":"leikai1","role":"Admin","username":"lk1"},{"department":"技术部","gender":"male","id":5,"post":"","realname":"leikai2","role":"Admin","username":"lk2"},{"department":"人事部","gender":"male","id":6,"post":"","realname":"leikai3","role":"Admin","username":"lk3"},{"department":"财务部","gender":"male","id":7,"post":"","realname":"leikai4","role":"Admin","username":"lk4"},{"department":"市场部","gender":"male","id":8,"post":"","realname":"leikai5","role":"Admin","username":"lk5"},{"department":"人事部","gender":"male","id":9,"post":"","realname":"leikai6","role":"Admin","username":"lk6"},{"department":"技术部","gender":"male","id":10,"post":"","realname":"leikai7","role":"Admin","username":"lk7"},{"department":"人事部","gender":"male","id":11,"post":"","realname":"leikai8","role":"Admin","username":"lk8"},{"department":"人事部","gender":"male","id":12,"post":"","realname":"leikai9","role":"Admin","username":"lk9"}]} [/code] 请大家帮我看看!
Ext grid分页的问题
因为我的数据形式是二维数据,所以我用simpleStore+ArrayReader可以很方便的显示出来,可是分页不好使,PagingToolbar 的页数总显示为NAN. 如果我把数据形式变成这样[code="java"]{ totalProperty :99, items:[ [],[],[],[] ] }[/code] 用jsonStore能读取出来吗? [b]问题补充:[/b] PagingToolbar是后台分页. ? 不太明白.... [b]问题补充:[/b] atian25 (架构师)  我明白你的意思了,simpleStore就没办法设置totalProperty的值了吗?晕了. [b]问题补充:[/b] 还有如果用jsonstore的话,那如果他的items是一个二维数组,直接用ArrayReader能解析出来吗?
EXt grid分页的问题 在 线 等啊!
小弟今天一个程序 实现一个 ext 表格分页 功能 代码 currGameOnLineStore.load({ params : { start:0, limit:5 } 这是store ------ bbar : new Ext.PagingToolbar({ pageSize : 5, store :currGameOnLineStore, displayInfo : true, displayMsg : '第 {0} - {1} 条 共 {2} 条', emptyMsg : "没有记录" }) 这是 grid中的 bbar String strStartNum=request.getParameter("start"); String strEndNum=request.getParameter("limit"); 后台代码 但是现在出了个问题 我每页显示 5条 第一页时 start 是 0 limit是5 点击下一页时 start变成5 limit也是5 这样 我前台数据就不对了 求 救啊!! 在 线 等 [b]问题补充:[/b] 当点击上一页时 后台应该是 start-5 下一页 是 start+5 那我如何知道 前台点击 上一页 和 下一页 呢 而且 每页显示的记录条数是pagesize吧 [b]问题补充:[/b] 我后台 是sql 是 where RowNum > =start and RowNum <= limit 的格式 后台没有对 start 和limit进行操作 哎 问题尚未解决 着急啊!
Ext中左侧tree与右侧grid,grid分页问题。
Ext中左侧tree与右侧grid,grid分页问题。因为右侧grid的内容来自根据node.id查询的sql结果。并且node.id是通过tree的单击事件从ds.load.parms 传进去的。所以当点击下一页的时候,无法获取node.id自然就不会执行后台action中的方法。现在我将第一次获取的node.id放入jsp中隐藏域。然后再js用document对象获取这个对象可以,但是如何将其放入ds.parms传到后台,或者将node.id放入ds的url中通过action传入后台。 ds = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ method : 'POST', url : 'txlListJson.action' }), tree.on(click'',function(){ ds.load({params : { orgid : node.id, start : 0, limit : 20 } }); }) 就是这两个地方。
Ext 2 分页问题
分页后有这么一条: <br /><pre name="code" class="java">displayMsg : '显示第 {0}条到 {1}条记录,一共 {2}条',</pre> <br />其中的参数{2}是通过ds.data.length来的,还是通过ds里面的:totalProperty来的。 <br /> <br />因为现在出现这个问题:ds中的totalProperty为6,但是我分页是3条一页的, <br />结果出来是这样的: <br /><pre name="code" class="java">显示第 1条到 3条记录,一共 3条</pre> <br /> <br />请各位帮忙看看。 <br /> <br /> <br /><pre name="code" class="java"> var cm = new Ext.grid.ColumnModel([ { header : "customerId", width : 120, dataIndex : 'customerId', hidden : true }, { header : "客户名称", width : 120, dataIndex : 'name' }, { header : "电子邮件", width : 200, dataIndex : 'email', align : 'right' }]); var ds = new Ext.data.Store( { proxy : new Ext.data.HttpProxy( { url : 'listFollowingCustomerAjax.action' }), reader : new Ext.data.JsonReader( { totalProperty : 'count', root : 'values' }, [ { name : 'customerId' }, { name : 'name' }, { name : 'email' }]) }); ds.load( { params : { start : 0, limit : 3 } }); var grid = new Ext.grid.GridPanel( { ds : ds, cm : cm, id : 'followingCusotmer', title : '跟进中客户列表', autoHeight : true, width : '100%', loadMask : true, buttons : [ { text : '查询', tooltip : '客户查询', handler : function() { alert(ds.data.length); } }, { text : '关闭', tooltip : '关闭窗口' }], buttonAlign : 'right', bbar : new Ext.PagingToolbar( { id : 'pagingbar', pageSize : 3, store : ds, displayInfo : true, displayMsg : '显示第 {0}条到 {1}条记录,一共 {2}条', emptyMsg : "没有记录" }) });</pre><br /><strong>问题补充:</strong><br /><pre name="code" class="java">url : 'listFollowingCustomerAjax.action' </pre> <br />返回的json中,count:6 <br />好奇怪。<br /><strong>问题补充:</strong><br />呵呵,因为本来发了问题,没找到,到论坛又发了一次。 <br /> <br />谢谢你,自己发现错误了,原来JAVA中的变量不是count,导致取不到6.但是不是他取不到6就会去取ds.data.length??
Ext分页问题
Ext分页问题 var grid_accountsTypeList = new Ext.grid.EditorGridPanel({ title: '账目类型管理', iconCls: 'icon-grid', loadMask: {msg : '数据加载中...'}, region: 'center', cm: cm_accountsType, ds: ds_accountsType, sm: new Ext.grid.RowSelectionModel({singleSelect : true}), //autoWidth: true, //store: ds_accountsType, enableColumnMove: false, trackMouseOver: false, frame: true, autoExpandColumn: 'remark', clicksToEdit: 1, tbar:[btn_AddAccountsType,'-',btn_delAccountsType], bbar: new Ext.PagingToolbar({ pageSize: 10, store: ds_accountsType, displayInfo: true, displayMsg: '第 {0} - {1} 条 共 {2} 条', emptyMsg: "没有记录" }), listeners: { 'afteredit': function(e) { Ext.Ajax.request({ url: 'accountTypeList.do?action=edit', params: { id: e.record.data.id, accountsName: e.record.get("accountsName"), totalMoney: e.record.get("totalMoney"), remark: e.record.get("remark") }, failure: function() { Ext.Msg.show({ title: '错误提示', msg: '修改数据发生错误,操作将被回滚!', fn: function() { e.record.set(e.field, e.originalValue); }, buttons: Ext.Msg.OK, icon: Ext.Msg.ERROR }); } }); } } }); //代理加载,初始化面板数据 grid_accountsTypeList.store.load({params:{start:0, limit:10}}); 在载入时显示10条信息。可是添加后就变成20条了。 我不知道怎么样把pageSize的值传到Action里。怎么样把limit和pageSize的值设置成一样。然后传到后台。 如果我的后台把所有的数据都读出来。能不能再对这个些数据进行分页。。
ext分页问题
<pre name="code" class="js">//页面数据数量 var pageSize = 2; var fields = [{ name: "prodTypeoid" }, { name: "prodTypeName" }, //名称 {name: "proDesc" } //备注 ]; //存储数据Store定义 var store = new Ext.data.Store( { proxy: new Ext.data.HttpProxy( { url: url }), //JsonReader固定格式 reader: new Ext.data.JsonReader( { fields: fields, root: "root", //id: "prodTypeoid", totalPorperty: "totalProperty" }) }); var sm = new Ext.grid.CheckboxSelectionModel( { dataIndex: "prodTypeoid" } ); var cm = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer({ header: "", width: 20, sortable: true }), sm, {header : '类别名称',dataIndex : 'prodTypeName'}, {header : '类别描述',dataIndex : 'proDesc'} ] ); cm.defaultSortable = true; var pagingBar = new Ext.PagingToolbar ({ store: store, pageSize: pageSize, //显示右下角信息 displayInfo: true, displayMsg: '当前记录 {0} -- {1} 条 共 {2} 条记录', //displayMsg: '显示第【&lt;b&gt;&lt;font color=red&gt;{0}&lt;/font&gt;&lt;/b&gt;】条至第【&lt;b&gt;&lt;font color=red&gt;{1}&lt;/font&gt;&lt;/b&gt;】条 / 共【&lt;b&gt;&lt;font color=red&gt;{2}&lt;/font&gt;&lt;/b&gt;】条记录', emptyMsg: "没有数据显示", prevText: "上一页", nextText: "下一页", refreshText: "刷新", lastText: "最后页", firstText: "第一页", beforePageText: "当前页", afterPageText: "共{0}页" }); var DoQuerry = function () { store.reload({ params: { start: 0, limit: pageSize} }); //reload 参数:start 0 limit pageSize 18 }; //-------------------------------------------------定义列表Grid var grid = new Ext.grid.GridPanel ({ id: "GridPanel", //GridPanelID layout: "fit", //填充整个容器 frame: true, //True表示为面板的边框外框可自定义的,false表示为边框可1px的点线(默认为false)。 border: true, //True表示为显示出面板body元素的边框,false则隐藏(缺省为true),默认下,边框是一套2px宽的内边框,但可在bodyBorder中进一步设置 stripeRows: true, height: document.documentElement.clientHeight , //- 15 autoScroll: true, //自动滚动条 width: Ext.get("grid").getWidth(), //设置grid Ui forceFit 固定列宽 loadMask: { msg: '系统正在查询,请稍候......' }, //指定查询等待语句 store: store, //数据源 sm: sm, //SelectMode 选择模式 cm: cm, //colMode 列模式 viewConfig: { forceFit: true }, header: false, //不显示title renderTo: "grid", tbar: [ //toolbar标签 new Ext.Toolbar.TextItem('类别名称(模糊查询):'), new Ext.form.Field({ width: 100, id: 'lbmc_txt' }), "-", {id: "btnQuerry", //刷新按钮 text: "刷新", iconCls: "refreshicon", handler: DoQuerry } ], bbar: pagingBar, //bottombar listeners: { //grid内的右键事件 全屏蔽 'contextmenu': function (e) { e.stopEvent(); rightClick_Menu.showAt(e.getXY()); }, //表格行上的右键事件,在查询没有的数据的时候不能触发 "rowcontextmenu": function (grid, rowIndex, e) { e.stopEvent(); //判断右键菜单项是否可用 var r = Ext.getCmp("GridPanel").getSelectionModel().getSelections(); if (r.length &gt; 0) { rightClickRow_Menu.items.get('editData_Mn').enable(); rightClickRow_Menu.items.get('deleteData_Mn').enable(); } else { rightClickRow_Menu.items.get('editData_Mn').disable(); rightClickRow_Menu.items.get('deleteData_Mn').disable(); } rightClickRow_Menu.showAt(e.getXY()); }, //行单击事件 "rowclick": function (grid, rowIndex, e) { } } }); </pre> <p> json字符串<br>{totalProperty:3,root:[{"proDesc":"测试","prodTypeName":"测试","prodTypeoid":"1"},{"proDesc":"测试","prodTypeName":"测试","prodTypeoid":"2"}]}<br>显示的时候只显示两条记录<br>当前记录 1 -- 2 条 共 2 条记录  <br>什么原因,求解决</p>
Ext中的分页问题
各位大侠: var grid = new Ext.grid.GridPanel({ height : 250, renderTo : 'grid', ds : ds, cm : cm, sm : sm, viewConfig : { forceFit : true }, bbar : new Ext.PagingToolbar({ pageSize : 10, displayInfo : true,// 为true时,下面的配置displayMsg和emptyMsg才有效 displayMsg : '显示第{0} 条到 第 {1} 条记录,一共 {2}条', emptyMsg : '没有记录' }) }); 为什么我加一个分页的工具会报错A is undefined?而不加的话就行了呢? :o 谢谢各位大虾
grid分页的问题
1、grid模型: //创建条目记录record var record = Ext.data.Record.create([ {name: 'typeid' ,type:'int'}, {name: 'typename' ,type:'string'}, {name: 'storename', type:'string'}, {name: 'coopid', type:'int'} ]); //表格的数据源 this.store = new Ext.data.Store({ proxy: new Ext.data.HttpProxy(), reader: new Ext.data.JsonReader(null, record) });商品类别 {name: 'storename', type:'string'} 。。。。。。 2、 StoreSearchGrid.superclass.constructor.call(this,{ autoScroll:true, region:'center', margins:'5 5 5 0', sm: this.sm, bbar: new Ext.PagingToolbar({ pageSize: 18, store: this.store, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }), viewConfig: { forceFit:true,//让表格表头自动填充所有编办 enableRowBody:true, showPreview:true, getRowClass : this.applyRowClass } }); 3、数据请求,采用ajax方式: Ext.Ajax.request({ url: "./index.php?controller=StatQuery_Store&action=QueryBlistInfo", method:'post', params:{parm:parmstr}, success: function(response, option) { var obj = Ext.decode(response.responseText); if(obj.flag==true){ [color=red] [u] grid.setGrid(obj.data);[/u][/color] }else{ grid.store.removeAll(); grid.Reset(); //Ext.MessageBox.alert('友情提示',obj.msg); } }, failure: function(response, option) { win.body.unmask(); Ext.MessageBox.alert('友情提示',"异步通讯失败,请于管理员联系!"); }, scope:this }); 红色部分为将数据插入grid: setGrid:function(records){ this.store.removeAll(); for(var i=0;i<records.length;i++){ var obj = records[i]; var p = new Ext.data.Record(records[i]); this.store.insert(0, p); } }, 问题: 分页的相关参数怎么获得,并传给后台,后台来进行分页?
Ext grid 速度优化
在项目中,grid要求不使用分页,大概最多的情况会有两百条数据左右,加上隐藏的grid有七,八列左右。后台的取数据已经优化了。现在速度慢在前台的渲染。 请问高手ext grid的速度可以在哪些方面进行,谢谢指点。 [b]问题补充:[/b] 感谢大家的帮助。 To lovewhzlq:因为需求要一次展示所有的数据,所以不能使用livegrid的异步加载功能了。现在使用的是多次请求后台,分批进行绘制,但是这样就要多次请求后台,开销比较大。我想实现这种效果http://lifesinger.googlecode.com/svn/trunk/lab/2009/array-processing.html。但是没有想到怎么和ext结合。 To 蔡华江:因为我要使用ext grid的列排序,列选择,和filter功能,这好像就没法自己进行绘制了吧 To jim.jin:是不是使用WorkerPool模块, 能不能给我一个gears 和 grid相结合的例子,先谢谢了。 [b]问题补充:[/b] To jim.jin:谢谢这个例子 :D 。这是个好方法。但是我觉得用localServer应该只可以提升首次的访问速度吧,因为浏览器也是有缓存的,就算不使用localServer,多次访问,也是从缓存中取静态资源。不过我打算在项目中试试,缓存图片和Js。
EXT 分页
实现EXT分页的功能 现在又这句话{proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}) 但是不知道该加在哪个位置 我把代码贴一下 大家帮看下 呵呵 谢谢啦 Ext.onReady( function aaa(){ var storee=new Ext.data.SimpleStore({data:datee,fields:["lmbh","ljbh","ljmc","beizhu","lookBi","update","delete"]});//转换成EXT支持的数据类型 [color=red]var grid = new Ext.grid.GridPanel({ //创建一个表格[/color]renderTo:"hello", title:"广西门户项目BI管理模块", height:1230, width:1030, [color=red]bbar:new Ext.PagingToolbar({ pageSize:15, store:storee, displayInfo:true, displayMsg:'显示第{0}条到第{1}条记录,一共两条', emptyMsg:"没有记录" }),[/color] viewConfig:{forceFit:true}, columns:[ {header:"栏目编号",dataIndex:"lmbh",sortable:true}, {header:"链接编号",dataIndex:"ljbh",sortable:true}, {header:"链接名称",dataIndex:"ljmc"}, {header:"备注",dataIndex:"beizhu"}, {header:"查看BI",dataIndex:"lookBi",renderer:lookBi}, {header:"修改",dataIndex:"update"}, {header:"删除",dataIndex:"delete"}], store:storee, autoExpandColumn:3 }); storee.load(params:{start:0,limit:10}}); });
EXT 分页
分页代码我已经写好了 但是为什么表格上还是空值啊 分页的工具栏也出来啦 主页代码如下 Ext.onReady( function(){ [color=red]var storee=new Ext.data.JsonStore({ fields:["lmbh","ljbh","ljmc"], proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}), reader:new Ext.data.JsonReader({ totalProperty:'totalProperty', id:'JsonStore', root:'root'},[{name:'lmbh'},{name:'ljbh'},{name:'ljmc'}] ) });//[/color]转换成EXT支持的数据类型 var grid = new Ext.grid.GridPanel({ //创建一个表格 renderTo:"hello", title:"广西门户项目BI管理模块", height:400, width:600, [color=red]bbar:new Ext.PagingToolbar({ pageSize:10, store:storee, displayInfo:true, displayMsg:'显示第{0}条到第{1}条记录,一共两条', emptyMsg:"没有记录" }),[/color] columns:[ {header:"栏目编号",dataIndex:"lmbh",sortable:true}, {header:"链接编号",dataIndex:"ljbh",sortable:true}, {header:"链接名称",dataIndex:"ljmc"} ], [color=red]store:storee, }); storee.load({params:{start:0,limit:10}});[/color] }); bbar.jsp代码如下 int start=Integer.parseInt(request.getParameter("start")); int limit=Integer.parseInt(request.getParameter("limit")); treeDao dao=new treeDao(); List<addBI> list=dao.queryAllBI1(start,limit); String json="{totalProperty:50,root:["; int i=0; for (addBI bi:list){ json+="{lmbh:"+ bi.getLmbh() +","+"ljbh:"+bi.getLjbh()+","+"ljmc:"+"\""+bi.getLjmc()+"\""+"}"; i=i+1; if(i<start+limit){json+=",";}} json+="]}"; response.getWriter().write(json); 谢谢大家啦!运行出来的图我以上传 [b]问题补充:[/b] 打印出来了的 我已经看了的 [b]问题补充:[/b] callback100000([{id:1, name:'name'}]) 这个能在详细点吗 写在什么地方 还有那个10000是什么意思 谢谢 我是初学者 [b]问题补充:[/b] json的格式我看了很多次 应该是没问题的 我把我的格式写出来 我的格式是这样的 {totalProperty:50,root:[{lmbh:1,ljmh:1,ljmc:"ddddd"},{lmbh:11,ljmh:1,ljmc:"dfg"}]} [b]问题补充:[/b] 哎 怎么没人回答了啊 好郁闷啊 这个问题又搞了一下午 [b]问题补充:[/b] 我试试 谢谢大家 [b]问题补充:[/b] stcCallback1001({totalProperty:50,root:[{lmbh:1,ljbh:1,ljmc:"ddddd"},{lmbh:11,ljbh:1,ljmc:"dfg"}]}) 这句话是什么意思 有点看不懂啊 应该不是这样写的吧 [b]问题补充:[/b] 我都试过了 还是不行!Rowen说的: 你把JSON的key:value都加上""试试。。 以前试别人代码的时候,看似没问题,不过加了""反而可以。。 这句话是什么意思 能再详细点吗 我想试试 现在只要是有方法 我就会去尝试啊 [b]问题补充:[/b] 哎 也试过啦!还是不行 我就纳闷了 咋这么烦呢!三天了! [b]问题补充:[/b] 现在的结果是很奇怪 好像没错误了 结果是表格上已经显示没有记录这几个字了!是不是因为还没有取到JSON吧 [b]问题补充:[/b] 我试了你说的方法啦 是0!哎 但是后台打印JSON却是有值的 [b]问题补充:[/b] jim.jin 我用ScriptTagProxy 这个方法 他老是报错 说缺少":"这个符号 代码是: var storee=new Ext.data.JsonStore({ fields:["lmbh","ljbh","ljmc"], [color=red]proxy:new Ext.data.ScriptTagProxy({url:'bbar.jsp'}),[/color] reader:new Ext.data.JsonReader({ totalProperty:'totalProperty', root:'root' },[{name:'lmbh',mapping:0},{name:'ljbh',mapping:1},{name:'ljmc',mapping:2}]) }); 很奇怪 如果我把那句话换成proxy:new Ext.data.HttpProxy({url:'bbar.jsp'}) 则不会报这样的错啦 我不知道为什么 [b]问题补充:[/b] jim。jin 你说的格式 我都试了的 而且我都获得callback的数据了 已经连接上去了 但是就是有错误! 哎 out.print()我也试啦 现在连记录为空都不显示了!
ext 分页
查询出的数据都有 我设置的是每页显示5条, 但是查出来后就显示前5条, 那个下一页的按钮不可以用 点不了.. 但是查出的数据是超过5条的 可能是我下面的代码写错了 但是我找不到 想请教一下有谁能找到不 [code="java"] var employeeRecord; var sm ; var ds; var ptb; var cm; var grid; var searchPanel = new Ext.FormPanel({ labelAlign:'left', id:'searchPanel', name:'searchPanel', title:'查询条件', autoWidth:true, autoHeight:true, collapsible:true, frame:true, renderTo:document.body, buttonAlign:'center', monitorValid:true, items:[ { layout:'form', border:false, items:[ { columnWidth:.8, xtype:'textfield', emptyText:'输入查询条件', width:200, allowBlank:false, blankText:'请输入查询条件', name:'conditionValue', id:'conditionValue', hiddenName:'conditionValue' } ], buttons:[ { text:'提交', handler:function(){ ds.proxy = new Ext.data.HttpProxy({ url:'/Lanto/GetEmployeeActionByCondition.action' }); ds.render = new Ext.data.JsonReader({ root:'empList', totalProperty:'total' },employeeRecord); ds.load({ params:{ conditionValue:Ext.getCmp('conditionValue').value, start:0, limit:ptb.getPageSize() } }); } } ] }] }); employeeRecord = new Ext.data.Record.create([ {name:'employeeID',mapping:'employeeID'}, {name:'employeeChineseName',mapping:'employeeChineseName'}, {name:'employeeEnglishName',mapping:'employeeEnglishName'}, {name:'employeePassword',mapping:'employeePassword'}, {name:'employeeIsAdministrator',mapping:'employeeIsAdministrator'}, {name:'employeeCompanyID',mapping:'employeeCompanyID'}, {name:'employeePositionID',mapping:'employeePositionID'}, {name:'employeeDepartmentID',mapping:'employeeDepartmentID'}, {name:'employeeSex',mapping:'employeeSex'}, {name:'employeeAge',mapping:'employeeAge'}, {name:'employeePhoto',mapping:'employeePhoto'}, {name:'employeeTelePhone',mapping:'employeeTelePhone'}, {name:'employeeExtension',mapping:'employeeExtension'}, {name:'employeeCornet',mapping:'employeeCornet'}, {name:'employeeQQ',mapping:'employeeQQ'}, {name:'employeeSkype',mapping:'employeeSkype'}, {name:'employeeOther',mapping:'employeeOther'}, {name:'employeeEmail',mapping:'employeeEmail'} ]); sm = new Ext.grid.CheckboxSelectionModel({singleSelect:true}); //定义表格的列信息 cm = new Ext.grid.ColumnModel([ sm, {id:'employeeID',dataIndex:'employeeID'}, {id:'employeeChineseName',header:'中文姓名',sortable:true,dataIndex:'employeeChineseName'}, {id:'employeeEnglishName',header:'英文名',sortable:true,dataIndex:'employeeEnglishName'}, {id:'employeePhoto',header:'分机号',sortable:true,dataIndex:'employeePhoto'}, {id:'employeeTelePhone',header:'手机',autoWidth:true,sortable:true,dataIndex:'employeeTelePhone'}, {id:'employeeExtension',header:'短号',sortable:true,dataIndex:'employeeCornet'}, {id:'employeeQQ',header:'QQ',sortable:true,dataIndex:'employeeQQ'}, {id:'employeeSkype',header:'Skype',sortable:true,dataIndex:'employeeSkype'}, {id:'employeeEmail',header:'Email',sortable:true,dataIndex:'employeeEmail'}, {id:'employeeOther',header:'其他',sortable:true,dataIndex:'employeeOther'} ]); cm.setHidden(1,true); //数据源 ds = new Ext.data.Store({ proxy:new Ext.data.HttpProxy({ url:'/Lanto/GetEmployeeActionByCondition.actions' }), reader:new Ext.data.JsonReader({ root:'empList', totalProperty:'total' },employeeRecord) }); ds.load({ params:{ start:0, limit:5 } }); ds.setDefaultSort('employeeID','ASC'); //工具栏 ptb = new Ext.PagingToolbar({ plugins : new Ext.ux.Andrie.pPageSize(), showPreview:true, pageSize:5,//每页显示多少 store:ds, displayInfo:true, displayMsg:'显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg:'查询的记录为空!', firstText:'首页', prevText:'上一页', nextText:'下一页', lastText:'尾页', refreshText:'刷新' }); //表格 grid = new Ext.grid.GridPanel({ id:'grid', border:false, buttonAlign:'right', autoWidth:true, autoHeight:true, ds:ds, cm:cm, sm:sm, stripeRows:true,//表格内部有线条 loadMask:{msg:'数据加载中...'}, enableDragDrop:true,//行拖动 enableColumnHide:true, enableColumnMove:true,//列头可拖动 enableColumnResize:true,//列头可改变大小 collapsible:true, animCollapse: true, viewConfig:{ forceFit:true, scrollOffset:20,//表格右侧为滚动条预留的宽度,默认20 sortAscText:'升序', sortDescText:'降序', columnsText:'显示的列' }, layoutConfig:{ animate:true }, tbar:[ { id:'refresh', text:'刷新', tooltip:'刷新', iconCls:'table_refresh', onClick:function(){ ds.load({ params:{ start:0, limit:5 } }); } } ], bbar:ptb, autoHeight:true, width:765, frame:true, title:'人事档案信息', iconCls:'icon-grid', renderTo:document.body }); grid.setPosition(0,0); //右键菜单代码 grid.on('rowcontextmenu',rightClickFn); var rightClick = new Ext.menu.Menu({ id:'rightClickMenu', items:[ { id:'menu5', text:'刷新', iconCls:'refresh', handler:Ext.getCmp('refresh').onClick } ] }); function rightClickFn(grid, rowindex, e) { e.preventDefault(); rightClick.showAt(e.getXY()); } [/code] [b]问题补充:[/b] 改了, 貌似还是不行..
ext 分页排序
我在使用ext作为数据呈现时,遇到一个列排序问题:在没有使用分页的时候,页面显示出来对每列多可以进行排序,但使用分页后,页面显示出来对每一列多无法进行排序,事件无法激发。请指教下,谢谢 [b]问题补充:[/b] 每列的sortable多是true [b]问题补充:[/b] 這是store [code="java"]ds = new Ext.data.Store({ proxy: new Ext.data.DWRProxy(pageDwr.queryPage_smt_203, true), reader: new Ext.data.ListRangeReader({id:"sysId",totalProperty:'totalSize'},recordType), remoteSort: true }); ds.on("load", function () { }); }[/code] 這是ColumnModel: [code="java"]columnModel= new Ext.grid.ColumnModel( [ { header: '', width: 35, renderer:renderDescn }, { header: '工號', width: 110, sortable: true, dataIndex: 'moNumber' },{ header: '狀態', width: 70, sortable: true, dataIndex: 'moStatus', renderer:renderStatus }, { header: '增加數量', width: 70, sortable: true, dataIndex: 'addQty' }, { header: '減少數量', width: 70, sortable: true, dataIndex: 'subtractQty' }, { header: '修改人員', width: 80, sortable: true, dataIndex: 'modifyOp' } , { header: '修改日期', width: 110, sortable: true, dataIndex: 'modifyDt', renderer:Ext.util.Format.dateRenderer('Y¦~m¤ëd¤é') } ]); }[/code] 這是grid: [code="java"] grid = new Ext.grid.GridPanel({ contentEl: 'mygrid', ds: ds, cm: getColumnModel(), autoWidth: false, bbar: bbar, width: 550, height: 260 }); grid.render('mygrid'); } [/code] 分頁代碼: [code="java"]grid = new Ext.grid.GridPanel({ contentEl: 'mygrid', ds: ds, cm: getColumnModel(), autoWidth: false, bbar: bbar, width: 550, height: 260 }); grid.render('mygrid'); }[/code] 這是頁面初始化: Ext.onReady(function(){ initDataSource(); ds.on('beforeload', function() { ds.baseParams = { number:mo_num, status:mo_status, add:'', subtract:'' }; }); ds.load({params:{start:0, limit:9}}); } buildGrid(); }); 在java代碼裡面參數是這樣的: [code="java"]public ListRange queryPage_smt_203(Map contriction){ System.out.println("----------PageDwr starting-------------"); ListRange list=new ListRange(); int start = Integer.parseInt(contriction.get("start").toString()); int limit = Integer.parseInt(contriction.get("limit").toString()); String number=contriction.get("number").toString(); String status=contriction.get("status").toString(); String add=contriction.get("add").toString(); String subtract=contriction.get("subtract").toString(); System.out.println("[start]:"+start+"[limit]:"+limit); String countHql="select count(*) from AccountsLog where 1=1 "; String fromHql="from AccountsLog where 1=1 "; StringBuffer whereHql=new StringBuffer(); if(!StringTool.filterNull(number).equals("")) whereHql.append(" and moNumber='"+number+"'"); if(!StringTool.filterNull(status).equals("")){ String stus[]=StringTool.filterNull(status).trim().split("@"); whereHql.append(" and moStatus='"+stus[1]+"'"); } if(!StringTool.filterNull(add).equals("")) whereHql.append(" and addQty='"+add+"'"); if(!StringTool.filterNull(subtract).equals("")) whereHql.append(" and subtractQty='"+subtract+"'"); System.out.println(fromHql+whereHql.toString()); System.out.println("[number]:"+number+"[status]:"+status+"[add]:"+add+"[subtract]:"+subtract); String HQL=fromHql+whereHql.toString()+" order by modifyDt desc"; System.out.println(HQL); countHql=countHql+whereHql.toString(); int tCount =(Integer)hibtool.selectData(countHql).get(0); Query query=hibtool.getSession().createQuery(HQL); query.setFirstResult(start); query.setMaxResults(limit); ArrayList listt=(ArrayList)query.list(); System.out.println("[list]:"+listt); data=new Object[listt.size()]; for(int i=0;i<listt.size();i++){ data[i]=(Object)listt.get(i); } list.setData(data); list.setTotalSize(tCount); return list; } [/code] 基本上這樣寫的 沒有使用分頁,對於每一列多是可以正常排序的 而使用的分頁后,每列的排序功能就失效 圖如下: [img]/upload/attachment/106294/6d0cd3be-6e26-3387-93ab-b4546df80334.jpg[/img]
Ext 分页后PagingToolbar显示条数的问题。
分页后有这么一条: [code="java"]displayMsg : '显示第 {0}条到 {1}条记录,一共 {2}条',[/code] 其中的参数{2}是通过ds.data.length来的,还是通过ds里面的:totalProperty来的。 因为现在出现这个问题:ds中的totalProperty为6,但是我分页是3条一页的, 结果出来是这样的: [code="java"]显示第 1条到 3条记录,一共 3条[/code] 请各位帮忙看看。 [code="java"] var cm = new Ext.grid.ColumnModel([ { header : "customerId", width : 120, dataIndex : 'customerId', hidden : true }, { header : "客户名称", width : 120, dataIndex : 'name' }, { header : "电子邮件", width : 200, dataIndex : 'email', align : 'right' }]); var ds = new Ext.data.Store( { proxy : new Ext.data.HttpProxy( { url : 'listFollowingCustomerAjax.action' }), reader : new Ext.data.JsonReader( { totalProperty : 'count', root : 'values' }, [ { name : 'customerId' }, { name : 'name' }, { name : 'email' }]) }); ds.load( { params : { start : 0, limit : 3 } }); var grid = new Ext.grid.GridPanel( { ds : ds, cm : cm, id : 'followingCusotmer', title : '跟进中客户列表', autoHeight : true, width : '100%', loadMask : true, buttons : [ { text : '查询', tooltip : '客户查询', handler : function() { alert(ds.data.length); } }, { text : '关闭', tooltip : '关闭窗口' }], buttonAlign : 'right', bbar : new Ext.PagingToolbar( { id : 'pagingbar', pageSize : 3, store : ds, displayInfo : true, displayMsg : '显示第 {0}条到 {1}条记录,一共 {2}条', emptyMsg : "没有记录" }) });[/code] [b]问题补充:[/b] 但是在totalProperty中是6,而显示的是3,这是怎么回事呢?
Ext 分页,高手帮我看看,grid已经可以显示数据了,可是分页就是没有数据,急死我了
Ext.onReady(function() { var itemsPerPage=30;//指定分页大小 Ext.regModel('Node', { fields:[{name:'UI_id'}, {name:'UI_Time'}, {name:'UI_Level'}, {name:'UI_Sys'}, {name:'UI_FlowID'}, {name:'UI_UserName'}, {name:'UI_Message'}, {name:'UI_Result'} ] } ); function showColor(value){ if (value == '成功') { return '<span style="color:green;">' + value + '</span>'; } else if (value == '失败') { return '<span style="color:red;">' + value + '</span>'; } return value; } var store = Ext.create('Ext.data.JsonStore',{ //storeId:'gridStore', autoload:true, model:'Node', pageSize:itemsPerPage, remoteSort:true, //data:[], proxy:{ type:'memory', reader:{ type:'json', totalProperty:50 } } }); store.loadPage(1); //store.loadPage(1); var sysData =[['ALL','全部'], ['GATEWAY','接入网关'], ['NJGL','农机管理'], ['NQJC','农情监测'], ['GIS','GIS'], ['DSE','数据服务引擎'], ['YG','运管'], ['TERMINAL','仿真终端']]; var sysStore = new Ext.data.SimpleStore({ fields:['sysID','sysName'], data:sysData }); var logLevel = [['ALL','全部'], ['INFO','INFO'], ['WARN','WARN'], ['ERROR','ERROR'], ['FATAL','FATAL'], ['DEBUG','DEBUG']]; var levelStore = new Ext.data.SimpleStore({ fields:['levelID','levelName'], data:logLevel }); var accordion = Ext.create("Ext.form.FormPanel", { title: "日志查询", layout: "form", //设置为手风琴布局 layoutConfig: { animate: true }, width: 250, minWidth: 90, height:50, region: "west", //设置方位 split: true, collapsible: true, items: [ {xtype: 'datefield',fieldLabel: '开始时间',name: 'starttime',format:'Y-m-d',allowBlank: true,height:25}, {xtype: 'datefield',fieldLabel: '结束时间',name: 'endtime',format:'Y-m-d',allowBlank: true,width:30,height:25}, {xtype:'combo',fieldLabel: '子系统标示',name:'sysID',store:sysStore,displayField:'sysName',valueField:'sysID',queryMode:'local',forceSelection:true,typeAhead:true,value:'ALL',height:25}, {xtype:'combo',fieldLabel:'日志级别',name:'levelID',store:levelStore,displayField:'levelName',valueField:'levelID',queryMode:'local',forceSelection:true,typeAhead:true,value:'ALL',height:25 }, {xtype:'textfield',fieldLabel:'查找内容',name:'contentID',emptyText:'用户名或者消息关键字',height:25} ], // 重置 和 保存 按钮. buttons: [{ text: '重置', width:'120', heigth:'80', style:'baseCls-18px', handler: function() { this.up('form').getForm().reset(); } }, { text: '查询', formBind: false, //only enabled once the form is valid disabled: false, width:'120', handler: function(){ var form = this.up('form').getForm().getValues(); //alert("开始时间为:" + form.starttime + ",结束时间为:" + form.endtime); var logParam = []; logParam.push(form.starttime); logParam.push(form.endtime); logParam.push(form.sysID); logParam.push(form.levelID); logParam.push(form.contentID); Ext.Ajax.request({ url:'selectLog.do', //timeout:2000, params:{'logParam':logParam.join(",")}, success:function(response,opts){ var strData= response.responseText; var tableData = eval(strData); store.loadData(tableData,false); }, failure:function(response,opts) { alert('提示:保存数据失败!!!'); } }) } }], renderTo: Ext.getBody() }); var pagingToolbar = new Ext.PagingToolbar({ pageSize:30, store:store, displayInfo:true, displayMsg: '第{0}-共{1}条,一共{2}条', emptyMsg:'没有数据', items: [ '-', { pressed: true, enableToggle: true, text: '预览', cls: 'x-btn-text-icon details', toggleHandler: function(btn, pressed) { var view = grid.getView(); view.showPreview = pressed; view.refresh(); } }] }); var accordion1 = Ext.create("Ext.Panel", { renderTo:Ext.getBody(), layout:'fit', frame:true, region: "center", width:1000, height:500, items:[{ xtype:'grid', title: '日志内容', stripeRows:true, loadMask:true, height:200, store: store, columnLines: true, columns: [ new Ext.grid.RowNumberer(), // { header: '编号', dataIndex: 'UI_id' }, { header: '日志时间', flex:1,dataIndex: 'UI_Time'}, { header: '日志级别', flex:1,dataIndex: 'UI_Level' }, { header: '子系统标示', flex:1,dataIndex: 'UI_Sys' }, { header: '业务流水号', flex:1,dataIndex: 'UI_FlowID' }, { header: '用户名', flex:1,dataIndex: 'UI_UserName' }, { header: '日志详情', flex:2,dataIndex: 'UI_Message' }, { header: '处理结果', flex:1,dataIndex: 'UI_Result',renderer:showColor} ], bbar:pagingToolbar, height: 800, width: 2000 } ] }); new Ext.Viewport({ title: "Viewport", layout: "border", //这里是(border)边界布局 defaults: { bodyStyle: "background-color: #FFFFFF;", frame: true }, items: [ accordion1, accordion, //这里是(accordion)手风琴布局 { region: "north", height: 150, title: '日志管理系统', html:'<br></br><font size=6><center><b>日志管理系统</font>' }, // { region: "center", // title: '日志内容' // }, { region: "south", height: 30, html:'<font size=2><center></font>'} ] }); })
下面ext代码怎样实现分页
Ext.onReady(function(){ var store=new Ext.data.JsonStore({ url: 'ExtJson', fields:["id","sex","name"] }); var columns = new Ext.grid.ColumnModel([ {header: '学号', dataIndex: 'id'}, {header: '性别', dataIndex: 'sex'}, {header: '姓名', dataIndex: 'name'} ]); var grid = new Ext.grid.GridPanel({ renderTo:"json", title: '学生信息列表', region: 'center', height:300, loadMask: true, store: store, cm: columns, sm: new Ext.grid.RowSelectionModel({singleSelect:true}), viewConfig: { forceFit: true }, bbar: new Ext.PagingToolbar({ pageSize:3, store: store, displayInfo: true }) }); store.load(); Ext.get("json").show(); });
ext表格分页不成功, 显示有22条记录,一共两页,但是却把所有数据都放在同一页上显示了.
如图所示: [img]http://dl.iteye.com/upload/attachment/186170/9ac17176-f3d8-3d25-b5c6-cecb308cd9e3.jpg[/img] 我计划每页显示20天, 查询出22条记录, 应该把多余的放在第二页显示. 但是实际上所有数据都出现在第一页了. 我的关键代码: 1. 定义了store. 分页参数是0,20 [code="js"] var store = new Ext.data.JsonStore({ url:'xxxxx', baseParams:{start:0, limit:20}, totalProperty: "totalProperty", root: "root", idProperty: "MYID", fields:[ {name: 'MYID', mapping: 'MYID'} ... ] }); [/code] 2. pageingToolbar. 每页限制20条. 使用的store:store [code="js"] bbar: new Ext.PagingToolbar({ pageSize:20 ,store:store ,displayInfo:true ,displayMsg:'显示第{0}数据到{1},一共有{2}条' ,emptyMsg:'没有记录' }); [/code] 3. java中返回给store的方法构造如下 [code="java"] // 查询得到所有记录 List<Map<String, Object>> resultList = sqlMapClient.queryForList("abc"); if(null == resultList){return null;} // 组装返回结果 Map<String, Object> resultMap = new HashMap<String, Object>(); // 记录条数 resultMap.put("totalProperty", resultList.size()); // root resultMap.put("root", resultList); // MYID是我记录中的一个字段 resultMap.put("id", "MYID"); // 然后将这个resultMap转为json返回给前台 [/code] 不明白, 为什么我的分页不成功, 我拿官网上列子和我对比, 也没找到区别.. 另外再多请教一个问题, EXT的分页是内存分页么. 我看官网的例子[url]http://www.extjs.com/deploy/dev/examples/grid/paging.html[/url], 它访问的URL中有6000多的记录. 这么多记录全加到内存中再分页的? [b]问题补充:[/b] ------------------------------------------------------- OK. hearken01: 你的意思是 [code="java"] for(int i = start; i < (list.size() - limit) > 0 ? limit : list.size(); i++) { // then return these results ? } [/code] 这是内存分页的做法.. 定义了baseParams:{start:0, limit:20} 当点下了下一页的时候, 使start = 21. and go on 既然, start limit已经被传到了java中, 那我可否更进一步, 赋给SQL [code="sql"] select * from mytab where offset = #start# and limit = #limit# [/code] 这就是数据库分页了. [color=red]但是这样有个问题.. 怎么才能到最后一页呢[/color] [b]问题补充:[/b] 如果使用了数据库分页的话, 返回的总是当前页数据, 无法计算totalProperty, 也就不知道有几页了啊~ [b]问题补充:[/b] 谢谢, 我已经做出来了. 最后采用的数据库分页. 方法是: 1. 把start, limit一直传到sql中, 数据库查询出记录. 2. 多写一条SQL. 把记录总条数查出来. 3. 组转一个Map. root指向记录集合. totalProperty指向总条数. 这样, 每次点上一页, 下一页就能数据库分页. 压力转移到了数据库上. 不过这样做还有个暇疵. 每次查询的时候, 都要多一条SQL去查总记录数. 由于查询是不加锁的, 万一当我查询出记录后, 另一个操作把记录全干掉...就那啥杯具了. 不知大大有啥好办法没?
ext分页,后台如何处理?
我是根据查询条件从数据库中取出满足条件的数据,保存到list中,用了json-plugin插件,所以直接把从数据返回的List类型数据赋值给List类型的参数items直接传到前台gridpanel中的root接收。我现在想实现的是根据查询的结果进行分页显示,如图,我得到12条结果,我现在想每页显示5条,我现在不知道怎样根据start和limit参数来处理。在网上搜了很多,始终搞不清楚原理。 [color=red][size=medium]这里是grid定义[/size][/color] [code="java"] //定义数据集对象 var store = new Ext.data.Store({//配置分组数据集 baseParams : { infoLinkman :'' }, reader: new Ext.data.JsonReader({ totalRecords : "results", totalProperty: "results", root : "items", fields : [ {name: 'id'}, {name: 'infoType'}, {name: 'infoTitle'}, {name: 'infoContent'}, {name: 'infoLinkman'}, {name: 'infoPhone'}, {name: 'infoEmail'}, {name: 'infoDate'}, {name: 'infoState'}, {name: 'infoPayfor'} ] }), proxy : new Ext.data.HttpProxy({ url : 'ShowList.action' }) }); store.load({ params : { start : 0, limit : 5 } }); var sm = new Ext.grid.CheckboxSelectionModel(); var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), sm, {header: "ID", width: 100, dataIndex: 'id', sortable: true}, {header: "信息类别", width: 100, dataIndex: 'infoType', sortable: true}, {header: "信息标题", width: 100, dataIndex: 'infoTitle', sortable: true}, {header: "信息内容", width: 100, dataIndex: 'infoContent', sortable: true}, {header: "联系人", width: 100, dataIndex: 'infoLinkman', sortable: true}, {header: "联系电话", width: 100, dataIndex: 'infoPhone', sortable: true}, {header: "E-mail地址", width: 100, dataIndex: 'infoEmail', sortable: true}, {header: "发布时间", width: 130, dataIndex: 'infoDate', sortable: true}, {header: "审核状态", width: 100, dataIndex: 'infoState', sortable: true}, {header: "付费状态", width: 100, dataIndex: 'infoPayfor', sortable: true}]); //创建Grid表格组件 var grid = new Ext.grid.GridPanel({ title : '列表', applyTo : 'grid-div', width:1200, height:400, frame:true, store : store, cm : cm, sm : sm, tbar : [{ xtype : 'tbtext', text : '联系人查询' }, { xtype : 'textfield', id : 'infoLinkman', emptyText : '联系人', width : 100 }, { xtype : 'button', text : '查询', handler:find }, '-', { xtype : 'button', text : '添加', handler:add }, '-', { xtype : 'button', text : '编辑', handler:update }, '-', { xtype : 'button', text : '删除', handler:remove }], bbar : new Ext.PagingToolbar({//分页工具栏 store : store, pageSize : 5, displayInfo : true, displayMsg : '第 {0} 条到 {1} 条,一共 {2} 条', emptyMsg : "没有记录" }) }); [/code] [color=red][size=medium]这里是查询函数[/size][/color] [code="java"] function find() { var store = new Ext.data.Store({//配置分组数据集 baseParams : { infoLinkman : Ext.getCmp('infoLinkman').getValue() }, reader: new Ext.data.JsonReader({ totalRecords : "results", root : "items", fields : [ {name: 'id'}, {name: 'infoType'}, {name: 'infoTitle'}, {name: 'infoContent'}, {name: 'infoLinkman'}, {name: 'infoPhone'}, {name: 'infoEmail'}, {name: 'infoDate'}, {name: 'infoState'}, {name: 'infoPayfor'} ] }), proxy : new Ext.data.HttpProxy({ url : 'ShowList.action' }) }); store.load({ params : { start : 0, limit : 5 } }); grid.reconfigure(store, cm); } [/code] [color=red][size=medium]这里是action[/size][/color] [code="java"] public class ShowListAction extends ActionSupport { private String infoLinkman; private long results; private List items; String start; String limit; public String execute() throws Exception{ this.results = 20; // int top1=Integer.parseInt(start); // int top2=Integer.parseInt(limit); Object[] params={infoLinkman}; String sql="SELECT * FROM tb_info WHERE (info_linkman=?) ORDER BY info_date ASC"; OpDB myOp=new OpDB(); System.out.println(infoLinkman); items=myOp.OpListShow(sql, params); return SUCCESS; } } [/code] [b]问题补充:[/b] 若后台是sql server 2000 sql语句该怎么写呢?好像用mysql的话这个问题比较好解决。还有我那个查询条件 联系人的参数我通过查询按钮在find方法里传过去,但我要点击下一页按钮的话文本框里的这个参数好像就传不过去了,每次传递的参数只是limit和start,这个查询条件参数带不过去。这个参数该怎么传递呢,在更新页码的时候? [b]问题补充:[/b] 现在就不处理吧,但是他也没有自动分页啊,12条数据他是全部显示出来了啊 [b]问题补充:[/b] [quote]来进行分页,不过要用两条select语句联合起来用[/quote] 比如总共12条数据,去6-10条,sql怎么写呢? [b]问题补充:[/b] [color=red][size=medium] 现在的问题是,我想根据查询条件得到结果,并将符合条件的结果条数动态的传给results。我在第一次显示gridpanel时它就调用了action,因为没有参数联系人参数传入,执行sql语句后满足条件的是0条,这时results值就被赋值0,因此页数就只有一页。此时我再点击查询按钮查询,可以得到第一页的前五条数据,但下面的分页按钮只有一页,无法点击下一页。<br> 第二个问题,即使现在可以点击下一页,那又怎样才能将我的查询条件这个参数带过去呢,不然返回的还是零条。<br> 第三个问题,即使现在点击第二页按钮时,可以返回第6-10条数据,但根据下面的摄sql语句,由于是用id进行分页的,而id是没有重复的,查询操作会直接前5条记录去除,从数据库的第6条开始查询满足条件的记录,而这必然会使第二页得到的内容会与第一页的内容有可能重复(若前5页没有符合条件的内容的话,第1页和第2页内容就会完全一样。)<br> [color=brown][/color] [/size][size=small]谢谢各位热心解答,问题讲得很啰嗦,不知道讲清楚没有,我基础不太好,这个问题搞了好久也没弄出个所以然来,实在不知道怎么办了。[/size][/color] [code="java"] public String execute() throws Exception{ int top1=Integer.parseInt(start); int top2=Integer.parseInt(limit); Object[] params={infoLinkman}; // String sql="SELECT * FROM tb_info WHERE (info_linkman=?) ORDER BY info_date ASC"; String sql = "select top "+top2+" * from tb_info where (info_linkman=?)and (id not in (select top "+top1+" id from tb_info order by id asc )) order by id asc"; // String sql = "select top 5 * from tb_info where (info_linkman=?)and (id not in (select top 10 id from tb_info order by id asc )) order by id asc"; OpDB myOp=new OpDB(); items=myOp.OpListShow(sql, params); String sql2="select count(*) count from tb_info where (info_linkman=?)"; results = myOp.getUserCount(sql2, params); // results=11; System.out.println("符合条件记录条数:"+results); System.out.println(infoLinkman); return SUCCESS; } [/code] [b]问题补充:[/b] 加上那段代码后提示[color=red]Ext.getCmp("infoLinkman") is undefined [/color] 其实就是想根据查询条件得到结果集合,但是如果数据量很大,就需要分页,现在这个分页很难实现吗,这个应该也是很常见的需求吧 [b]问题补充:[/b] [size=medium][color=red]奇怪,上次补充的问题不见了。前段时间网络一直不好。我把load和beforeload函数放到gridpanel定义后结果就正常了,不报错。 现在我把results定死,赋值为11,这样初始分页栏会显示有3页,第一页显示根据查询条件得到的5个结果,点击第二页时,从后台看,action可以得到查询参数并返回5条结果,但是gridpanel里的数据并没有更新,现在的问题是如何让gridpanel根据每次返回的数据动态更新表格。[/color][/size] [b]问题补充:[/b] [color=red][size=small]第一次默认返回数据为:{"[/[/size]color]infoLinkman":"","infoType":null,"items":[],"limit":"5","results":11,"start":"0"} [color=red][size=small]第二次根据查询数据得到数据为:{"[/[/size]color]infoLinkman":"鑺宠姵","infoType":null,"items":[{"[color=red]id[/color]":114,"infoContent":"姹傝喘淇℃伅鍐呭","infoDate":"2007-12-26 11:47:46","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"姹傝喘淇℃伅鏍囬","infoType":4},{"id":115,"infoContent":"鎷涘晢寮曡祫鍐呭","infoDate":"2007-12-26 11:51:54","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鎷涘晢寮曡祫鏍囬","infoType":5},{"id":116,"infoContent":"鍏瘬淇℃伅鍐呭","infoDate":"2007-12-26 11:52:36","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鍏瘬淇℃伅鏍囬","infoType":6},{"id":117,"infoContent":"姹傝亴淇℃伅鍐呭","infoDate":"2007-12-26 11:53:03","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"姹傝亴淇℃伅鏍囬","infoType":7},{"id":118,"infoContent":"瀹舵暀淇℃伅鍐呭","infoDate":"2007-12-26 11:53:40","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"瀹舵暀淇℃伅鏍囬","infoType":8}],"limit":"5","results":11,"start":"0"} [size=small][color=red]点击第二页后得到数据为:[/color][/size] {"infoLinkman":"鑺宠姵","infoType":null,"items":[{"[color=red]id[/color]":116,"infoContent":"鍏瘬淇℃伅鍐呭","infoDate":"2007-12-26 11:52:36","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鍏瘬淇℃伅鏍囬","infoType":6},{"id":117,"infoContent":"姹傝亴淇℃伅鍐呭","infoDate":"2007-12-26 11:53:03","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"姹傝亴淇℃伅鏍囬","infoType":7},{"id":118,"infoContent":"瀹舵暀淇℃伅鍐呭","infoDate":"2007-12-26 11:53:40","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"瀹舵暀淇℃伅鏍囬","infoType":8},{"id":119,"infoContent":"杞﹁締淇℃伅鍐呭","infoDate":"2007-12-26 11:54:05","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"杞﹁締淇℃伅鏍囬","infoType":9},{"id":120,"infoContent":"鍑哄敭淇℃伅鍐呭","infoDate":"2007-12-26 11:54:41","infoEmail":"888@89*.com","infoLinkman":"鑺宠姵","infoPayfor":"1","infoPhone":"13255******","infoState" :"1","infoTitle":"鍑哄敭淇℃伅鏍囬","infoType":10}],"limit":"5","results":11,"start":"5"} [size=small][color=red]grid定义:[/color][/size] [code="java"]var grid = new Ext.grid.GridPanel({ title : '列表', applyTo : 'grid-div', width:1200, height:500, frame:true, store : store, cm : cm, sm : sm, tbar : [{ xtype : 'tbtext', text : '联系人查询' }, { xtype : 'textfield', id : 'infoLinkman', emptyText : '联系人', width : 100 }, { xtype : 'button', text : '查询', handler:find }, '-', { xtype : 'button', text : '添加', handler:add }, '-', { xtype : 'button', text : '编辑', handler:update }, '-', { xtype : 'button', text : '删除', handler:remove }], bbar : new Ext.PagingToolbar({//分页工具栏 store : store, pageSize : 5, displayInfo : true, displayMsg : '第 {0} 条到 {1} 条,一共 {2} 条', emptyMsg : "没有记录" }) }); store.on('beforeload', function() { //Ext.data.JsonStore读入数据之前的事件,让store在读入数据之前设置参数。 this.baseParams = { infoLinkman : Ext.getCmp('infoLinkman').getValue() }; }); store.load({ params : { start : 0, limit : 5 } }); grid.reconfigure(store, cm);[/code] [b]问题补充:[/b] 这句代码加不加都一样没反应 [b]问题补充:[/b] store内容怎么检查啊,不会啊 [b]问题补充:[/b] [size=medium][color=blue]这个问题先放一放了,以后再接着研究。谢谢所有热心的朋友。[/color][/size]
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
程序员,职场上请远离这种人!
对有些职场人来讲,甩锅就是一种生存手段。01.从大学打篮球说起上大学的时候喜欢打篮球,然后我又特别喜欢抢篮板,经常是跳起来的时候没事,落下来的时候偶尔会踩到别人的脚上,于...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
一个读研让我损失了一百万的真实故事
关注我!只要10分钟,包你学会数据分析 毕业后,应该就业还是考研? 我刚出国留学那会儿,就惊讶的发现,外国local95%都不会选择读研 他们说,硕士学费很贵,时间宝贵,老板不认,所以很费 当几乎所有人都是本科学历时,硕士学历反而像个异类 在老板眼里,三年硕士远远不如3年的工作经验实用 他们甚至专门为拒绝高学历者发明了一个词,叫overoccupie...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。 小秋今天去面试了,面试官问了一个与敏感词过滤算法相关的问题,然而小秋对敏感词过滤算法一点也没听说过。于是,有了下下事情的发生… 面试官开怼 面试官:玩过王者荣耀吧?了解过敏感词过滤吗?,例如在游戏里,如果我们发送“你在干嘛?麻痹演员啊你?”,由于“麻痹”是一个敏感词,...
GitHub 标星 1.6w+,我发现了一个宝藏项目,作为编程新手有福了!
大家好,我是 Rocky0429,一个最近老在 GitHub 上闲逛的蒟蒻… 特别惭愧的是,虽然我很早就知道 GitHub,但是学会逛 GitHub 的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞 ACM,没有做一些工程类的项目,所以想当然的以为和 GitHub 也没什么关系(当然这种想法是错误的)。 后来自己花了一个星期看完了 Pyt...
杭漂程序员2019的心路历程,还不起助学贷款,交不起房租,披荆斩棘终雨过天晴
一个杭漂2019的心酸历程,一路披荆斩棘终于还是雨过天晴。
我采访了同事,让他掏出了每天都会浏览的干货网站
前言只有光头才能变强。文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y在周六的晚上,我日常去到公司写文章。想写...
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问