本周工作总结2011-11-12

场景一:

    创建一个TabPanel,将平台封装的Grid2添加到TabPanel中;出现问题,切换Tab页的时候右边的Tab页中的Grid没有渲染成功。

解决方法:


,createTabPanel:function(){
	var tab = new Ext.TabPanel({
		id: 'tabid',
		width: 1000,
		height: 600,
		renderTo :'div_main'
});
        var panel1 = new Ext.Panel({
	       title: '面板一',
		html: '<div id="div_main1"></div>'
	});
	var panel2 = new Ext.Panel({
		title: '面板二',
		html: '<div id="div_main2"></div>'
	});
	tab1 = tab.add(panel1);
	tab2 = tab.add(panel2);
	tab1.on('activate',function(){
		JXRWJC.gridInit('div_main1');
});
         tab2.on('activate',function(){
		JXRWJC.gridInit('div_main2');
	});
	tab.activate(0);
}


 在每个Tab页的activate事件中绑定Grid2初始化方法,并将参数传过去(需要渲染的Tab页中的DivID和Grid2的过滤条件,在初始化方法中直接配置Grid2的filter)。


场景二:

如何给Grid2添加多个Toolbar?

解决方法:

首先我们可以设置Grid2的tbar:object/Array属性,按照API上面的解释toolbar是面板顶部的工具条。此配置项可以是Ext.Toolbar的实例、工具条的配置对象或由按钮配置项对象构成的数组,以加入到工具条中。除了Grid2默认配置的tbar之外,我们同样可以自己new出一个tbar对象添加到Grid中去。


var tbar2 = new Ext.Toolbar([ 
   {
	 text:'上课班级合班'
	,tooltip: {title:'上课班级',text:'上课班级维护'}
	,iconCls: 'setting_btn'
	,handler: this.hbbjMethod
	,scope : JXRWJC
    },'-',{
	text:'任课教师'
	,tooltip: {title:'任课教师',text:'任课老师维护'}
	,iconCls: 'tech_btn'
	,handler: this.rklsMethod
	,scope : JXRWJC
},'-',{
	text:'编辑教学班'
	,tooltip: {title:'编辑教学班',text:'教学班信息维护'}
	,iconCls: 'jxb_btn'
	,handler: this.bjJxbMethod
	,scope : JXRWJC
},'-',{
         text: '高级排序'
        ,tooltip: {title:'支持多列排序',text:'支持多列排序'}
	,iconCls: 'extsort_btn'
	,handler: this.queryOrderBy 
	,scope : JXRWJC
}
]);


 例如可以定义如上一组功能按钮添加到面板的工具栏中。因为是新new出来的toolbar所以会生成一个新的toolbar放在原来配置的toolbar的下面一行显示。


场景三:

    从数据库中取得数据,动态生成checkbox显示在Window窗口中,用户选择某几个checkbox后返回勾选的数据(特定格式的数据)。

存在的问题:

    目前系统可能是出于Ext开源协议的限制,一直使用的Ext2.1版本。解决此问题的初步想法是首先创建一个FormPanel,设置其子组件xtype:fieldset,然后在fieldset中再创建两个子组件分别是checkbox(全选checkbox)和使用checkboxgroup分组显示后台取出的JSON数据。我们觉得这个方法肯定是可以实现的,虽然还存在如何将JSON数据设置为checkboxgroup的items值的问题。一个更郁闷的问题彻底迫使我放弃这个方法了,因为Ext2.1不支持xtype:checkboxgroup属性。后来我到网上查了一下具体Ext各个版本之间的差别,有人总结了一下:

基本组件:
xtypeClass描述
buttonExt.Button按钮
splitbuttonExt.SplitButton带下拉菜单的按钮
cycleExt.CycleButton带下拉选项菜单的按钮
buttongroupExt.ButtonGroup编组按钮(Since 3.0)
sliderExt.Slider滑动条
progressExt.ProgressBar进度条
statusbarExt.StatusBar状态条,2.2加进来,3.0 又去了
colorpaletteExt.ColorPalette调色板
datepickerExt.DatePicker日期选择面板


容器及数据类组件
xtypeClass描述
windowExt.Window窗口
viewportExt.ViewPort视口,即浏览器的视口,能随之伸缩
boxExt.BoxComponent盒子组件,相当于一个 <div>
componentExt.Component组件
containerExt.Container容器
panelExt.Panel面板
tabpanelExt.TabPanel选项面板
treepanelExt.tree.TreePanel树型面板
flashExt.FlashComponent显示 Flash 的组件(Since 3.0)
gridExt.grid.GridPanel表格
editorgridExt.grid.EditorGridPanel可编辑的表格
propertygridExt.grid.PropertyGrid属性表格
editorExt.Editor编辑器
dataviewExt.DataView数据显示视图
listviewExt.ListView列表视图


工具栏组件:
xtypeClass描述
pagingExt.PagingToolbar分页工具条
toolbarExt.Toolbar工具栏
tbbuttonExt.Toolbar.Button工具栏按钮
tbfillExt.Toolbar.Fill工具栏填充区
tbitemExt.Toolbar.Item工具条项目
tbseparatorExt.Toolbar.Separator工具栏分隔符
tbspacerExt.Toolbar.Spacer工具栏空白
tbsplitExt.Toolbar.SplitButton工具栏分隔按钮
tbtextExt.Toolbar.TextItem工具栏文本项


菜单组件:
xtypeClass描述
menuExt.menu.Menu菜单
colormenuExt.menu.ColorMenu颜色选择菜单
datemenuExt.menu.DateMenu日期选择菜单
menubaseitemBaseItem
menucheckitemExt.menu.CheckItem选项菜单项
menuitemExt.menu.Item
menuseparatorExt.menu.Separator菜单分隔线
menutextitemExt.menu.TextItem文本菜单项


表单及表单域组件:
xtypeClass描述
formExt.FormPanel/Ext.form.FormPanel表单面板
checkboxExt.form.Checkbox多选框
comboExt.form.ComboBox下拉框
datefieldExt.form.DateField日期选择项
timefieldExt.form.TimeField时间录入项
fieldExt.form.Field表单字段
fieldsetExt.form.FieldSet表单字段组
hiddenExt.form.Hidden表单隐藏域
htmleditorExt.form.HtmlEditorHTML 编辑器
labelExt.form.Label标签
numberfieldExt.form.NumberField数字编辑器
radioExt.form.Radio单选按钮
textareaExt.form.TextArea多行文本框
textfieldExt.form.TextField表单文本框
triggerExt.form.TriggerField触发录入项
checkboxgroupExt.form.CheckboxGroup编组的多选框(Since 2.2)
displayfieldExt.form.DisplayField仅显示,不校验/不被提交的文本框
radiogroupExt.form.RadioGroup编组的单选按钮(Since 2.2)


数据集 Store:
xtypeClass描述
arraystoreExt.data.ArrayStore
directstoreExt.data.DirectStore
groupingstoreExt.data.GroupingStore
jsonstoreExt.data.JsonStore
simplestoreExt.data.SimpleStore
storeExt.data.Store
xmlstoreExt.data.XmlStore


无法使用checkboxgroup组件,想到一个简单的方法,使用同步的Ajax请求到后台取得需要展示的数据,在前台拼接成HTML直接显示到Window的html属性中。这里还需要实现全选的功能,直接遍历生成的html


for(var i=0,length=checkbox.length;i<length;i++){
      if(checkbox[i].type == 'checkbox'){
		if(checkbox[i].checked){
			checkbox[i].checked = false;
                }else{
			checkbox[i].checked = true;
		}
	}
}

 document.getElementById("tb_check").getElementsByTagName("input");取得table下面所有的checkbox的javascript组件。


场景四:ExtJs在IE报对象不支持此属性或方法。

有时候为了测试Ext相关文件是否被正确的引用,我们用eclipse自动生成jsp文件以及js文件,然后我们兴高采烈的在js中写下Ext.onReady(function(){})函数来测试,有时候会莫名其妙的出现此类问题

原因:引用js的JSP页面第一个元素不能为文本text,否则IE浏览器会报错。也就是说<body>标签后面紧跟的必需是div、table、form等元素,不能是任何类型的文本。


场景五:数据库分页语句(效率比较高)

SELECT x.* FROM (
SELECT jbxx.*,ROWNUM rn FROM T_XJ_JBXX jbxx WHERE ROWNUM <=10 ORDER BY xh
) x WHERE x.rn >0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值