extjs4中XTemplate的使用问题(问题找到,另外的combo下拉自动刷新的问题)

流海 发布于 2013/06/27 16:34
阅读 901
收藏 0

原来在ext3中使用tpl,正常,代码移植到4中,发现有问题

是一个combox,

**************以下描述已经解决,新问题在下面……********************

reader是:

reader: new Ext.data.reader.Json({
	root: 'files',
	totalProperty: 'totalCount',
	id: 'fid'
}

tpl是:

tpl:new Ext.XTemplate(
	'<tpl for=".">',
		'<div class="x-combo-list-item search-item"><span onClick="javascript:FileExpandPath({fid});">{#}定位</span> <span onClick="javascript:window.open(\'server/getfile.php?fid={fid}&&filegroup=0\')">{modifydata:date("Y-m-d")}:<b>{filename}</b></span></div>',
	'</tpl>'
),
数据返回json如下:
{
	"totalCount":"51",
	"query":"",
	"files":
	[
		{"filename":"123.JPG","fid":"76","modifydata":"1371781151"},
		{"filename":"1.xls","fid":"75","modifydata":"1371781038"},
		{"filename":"Windows_Server_2003.doc","fid":"73","modifydata":"1371779945"}
	]
}

但是在ext4中无法正常tpl出来,重新看了Ext.XTemplate的api,写法也没有发觉有什么错误的,但是就是不能出数据,求解


将tpl去掉后依然存在问题,后来继续检查,发现依然不能显示数据,原来代码是从3升级来的,3是ext.jsonreader,4是ext.reader.json,其中初始化的参数不一致,导致fields数据没有传输进去,所以combox一直得不到数据,修改代码后正常。

******************以上问题已经解决*********************

但是现在有另外一个问题

combo remote query,但是输入后点击下拉框会自动加载全部数据,比如后台一共100个文件,我现在输入框中输入“gb”,查询返回36条,并自动将combo下拉框打开进行显示,paging正常,

1、但是只要再点击一下combo的下拉框,就会重新查询并返回100条数据,也就是说直接将所有的数据都查询出来了

2、不是大问题,之前在ext3的时候只要在combo里面配置pageSize就可以了,但是在ext4调试发现,在store里面也要配置pageSize才有效果,单独配置combo和store的pageSize都不行,稍微求个解……

{
	xtype:'combo',
	//fieldLabel: '快速搜索',
	//displayField:'query',
	minChars:2,
	width: 300,
	labelWidth: 60,
	pageSize:10,
	typeAhead :false,
	//allQuery :'fdajio32923840fjlkajdlfa',
	displayField:'filename',
	queryParam: 'query',
	queryMode: 'remote',
	tpl:new Ext.XTemplate(
		'<tpl for=".">',
			'<div class="x-combo-list-item search-item"><span onClick="javascript:FileExpandPath({fid});">{#}定位</span> <span onClick="javascript:window.open(\'server/getfile.php?fid={fid}&&filegroup=0\')">{modifydata:date("Y-m-d")}:<b>{filename}</b></span></div>',
		'</tpl>'
	),
	store:new Ext.data.Store({
		pageSize:10,
		proxy:{
			type:'ajax',
			extraParams:{ajax:1,filegroup:0},
			actionMethods:{create: 'POST', read: 'POST', update: 'POST', destroy: 'POST'},
			url:'server/quicksearchfile.php',
			reader: new Ext.data.reader.Json({
				root: 'files',
				totalProperty: 'totalCount',
				idProperty: 'fid',
				id: 'fid',
				query:'query'
			}),
		},
		model:'APP.model.files'
	})
}
加载中
返回顶部
顶部