- 浏览: 262672 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
小清新雪仔_:
报错The import org.springframewor ...
Spring Security oAuth学习之Hello World -
hrybird:
http://www.dolit.cn/portfolios/ ...
LightVOD P2P点播系统完全开源 -
xiaoxiao_qiang:
感谢,正在学习oAuth,有机会一起交流
Spring Security oAuth学习之Hello World -
thinkgem:
你好,lightvodcode.zip现在不能下了,能否发我一 ...
LightVOD P2P点播系统完全开源 -
gdw520:
<div style="text-align: ...
如何实现javascript截图 jQuery插件imgAreaSelect使用详解
Ext2.0 综合应用
转载自http://www.iteye.com/topic/196314
// JavaScript Document
/**
* @author Erit
*/
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
Ext.BLANK_IMAGE_URL = '../images/default/s.gif';
var frm = Ext.form;
var columns = [
{
id:'contractId',
header:'合同编号',
sortable:false,
align: 'center',
renderer:function (v) {
return '<span class="index_listid_underline" style="cursor:pointer;">' + v + '</font>';
},
dataIndex:'contractId',
width:60
},
{
id:'areaName',
header:'区域',
dataIndex:'areaName',
align: 'center',
sortable: true,
width:60
},
{
id:'agencyName',
header:'客户名称',
dataIndex:'agencyName',
align: 'center',
sortable: true,
width:120
},
{
id:'efDate',
header:'开通日期',
align: 'center',
dataIndex:'efDate',
sortable:true,
//renderer: Ext.util.Format.dateRenderer('Y年m月d日'),
width:100
},
{
id:'joinMode',
header:'加盟方式',
dataIndex:'joinMode',
align: 'center',
sortable:true,
width:80
},
{
id:'contractStatus',
header:'合同状态',
dataIndex:'contractStatus',
align: 'center',
sortable:true,
width:100
}
];
var contract = [
{name:'areaName',type:'string'},
{name:'agencyName',type:'string'},
{name:'contractId',type:'string'},
{name:'efDate',type:'string'},
{name:'joinMode',type:'string'},
{name:'contractStatus',type:'string'}
];
var store = new Ext.data.GroupingStore({
proxy: new Ext.data.HttpProxy({url:''}),
reader: new Ext.data.JsonReader(
{
totalProperty:'dataForm',
root:'contract'
},
contract
),
remoteSort: true,
sortInfo:{field: 'areaName', direction: "DESC"},
groupField:'areaName'
});
var view = new Ext.grid.GroupingView({
forceFit:true,
sortAscText :'正序',
sortDescText :'倒序',
columnsText:'列显示/隐藏',
groupByText:'依本列分组',
showGroupsText:'分组显示',
groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 0 ? "份合同" : "暂无合同"]})'
})
var store_selectType = new Ext.data.SimpleStore({
fields: ['typeCode', 'typeText'],
data : [
[1,'不限'],
[2, '合同编号'],
[3,'区域'],
[4,'加盟方式'],
[5,'合同状态'],
[6,'客户名称']
]
});
var selectType = new Ext.form.ComboBox({//查询类别的下拉框
store:store_selectType,
name: 'selectTypeName',
valueField:'typeCode',
displayField:'typeText',
typeAhead: true,
editable:false,//不可编辑的
mode: 'local',//本地模式
triggerAction: 'all',
blankText:'不限',
emptyText:'不限',
width:80
});
var store_selectArea = new Ext.data.SimpleStore({
fields: ['areaCode', 'areaText'],
data : [
[1,'不限'],
[2, '黄浦'],
[3,'浦东'],
[4,'闸北'],
[5,'闵行'],
[6,'徐汇'],
[7,'杨浦'],
[8,'虹口'],
[9,'长宁'],
[10,'静安'],
[11,'卢湾'],
[12,'宝山'],
[13,'嘉定'],
[14,'青浦'],
[15,'奉贤'],
[16,'南汇'],
[17,'普陀'],
[18,'金山'],
[19,'松江'],
[20,'崇明'],
[21,'周边地区']
]
});
var selectArea = new Ext.form.ComboBox({//查询类别的下拉框
store:store_selectArea,
name: 'selectAreaName',
valueField:'areaText',
displayField:'areaText',
typeAhead: true,
editable:false,//不可编辑的
mode: 'local',//本地模式
triggerAction: 'all',
blankText:'不限',
emptyText:'不限',
width:80
});
var beginDate = new Ext.form.DateField({
name: 'beginDate',
width:100,
readOnly:true,
format: 'Y年m月d日'
});
var endDate = new Ext.form.DateField({
id: 'endDate',
width:100,
readOnly:true,
format: 'Y年m月d日'
});
var selectKey = new Ext.form.TextField({
name:'KeyInfo',
width:80
});
var tbar =[
{
xtype:'button',
iconCls:'excelIcon',
tooltip:'把数据导出到excel',
handler:exportExcel
},'-',
'->','开始时间:',beginDate,'-','结束时间:',endDate,'-','区域:',selectArea,'-','查询条件:',selectType,'-','查询关键字:',selectKey,'-',
{
text:'查询',
handler:doSelect
}
];
var grid = new Ext.grid.GridPanel({
el:'contract-grid',
id:'contract-grid',
store: store,
columns: columns,
bodyBorder:false,
sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
view:view,
loadMask:({msg :'数据正在加载中……'}),
width: 1024,
height: 474,
tbar:tbar,
bbar:new Ext.PagingToolbar(
{
pageSize:15,
store:store,
displayInfo:true,
beforePageText:'第',
afterPageText:'页 共 {0} 页',
refreshText:'刷新',
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条合同记录',
emptyMsg: '没有记录'
})
});
grid.render();
store.load({params:{start:0, limit:15}});
grid.addListener('cellclick', cellclick);
//var mainPanel = Ext.getCmp('contract-grid');
function cellclick(grid,rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
var maskDiv = document.getElementById('extMask');
var cnID = record.get('contractId');
if (fieldName == 'contractId') {
var cmWindow;
if (!cmWindow) {
//mainPanel.body.mask();
maskDiv.style.display = '';
var tCBar = ['->',{
text:'确定修改',
name:'saveContract',
handler:function(){
if (!Ext.get('idForContract').getValue()) {
Ext.MessageBox.alert('提示','合同编号不能为空!');
return false;
}
if (!Ext.get('agency').getValue()) {
Ext.MessageBox.alert('提示','中介名称不能为空!');
return false;
}
if (!Ext.get('join_mode').getValue()) {
Ext.MessageBox.alert('提示','加盟形式不能为空!');
return false;
}
if (!Ext.get('service_item').getValue()) {
Ext.MessageBox.alert('提示','服务项目不能为空!');
return false;
}
if (!Ext.get('efficient_date').getValue()) {
Ext.MessageBox.alert('提示','开通日期不能为空且格式为 年-月-日!');
return false;
} else if(!dateCheck(Ext.get('efficient_date').getValue())) {
Ext.MessageBox.alert('提示','开通日期格式为 年-月-日!');
return false;
}
if (!Ext.get('end_date').getValue()) {
Ext.MessageBox.alert('提示','时间截点不能为空且格式为 年-月-日!');
return false;
}else if(!dateCheck(Ext.get('end_date').getValue())) {
Ext.MessageBox.alert('提示','时间截点格式为 年-月-日!');
return false;
}
if(cPanel.form.isValid()){
Ext.MessageBox.wait('正在保存数据中, 请稍候……');
cPanel.form.submit({
//reset: true,
failure: function(form, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
cmWindow.close(this);
store.reload({params:{start:0, limit:15}});
//mainPanel.body.unmask();
maskDiv.style.display = 'none';
beginDate.setValue('');
endDate.setValue('');
}
});
}
}
},'-',
{
text:'查看收费详情',
id:'seeContract',
handler:function () {
var seeWind;
if (!seeWind) {
var ctColumns = new Ext.grid.ColumnModel([{
hidden:true,
id:'payID',
dataIndex:'payID'
},{
id:'transact',
header:'执行例次',
dataIndex:'transact',
renderer:function (v) {
return '<span class="index_listid_underline" style="cursor:pointer;">第' + v + '次</span>';
},
align:'center',
width:90
},
{
id:'sPayDate',
header:'付款时间',
dataIndex:'sPayDate',
align:'center',
width:140
},
{
id:'sPayMoney',
header:'此次金额(元)',
dataIndex:'sPayMoney',
align:'center',
width:100
},
{
id:'sEStartDate',
header:'服务开始时间',
dataIndex:'sEStartDate',
align:'center',
width:130
},
{
id:'sEEndDate',
header:'服务结束时间',
dataIndex:'sEEndDate',
align:'center',
width:130
},
{
id:'sPayStatus',
header:'状态',
dataIndex:'sPayStatus',
align:'center',
renderer:function (v) {
if (v == '已支付')
return '<span class="index_listid_underline" style="cursor:pointer;">' + v + '</span>';
else if (v == '未支付')
return '<span class="index_listid_underline" style="cursor:pointer;">' + v + '</span>';
},
width:81
}]
);
var sStract = [
{name:'payID'},
{name:'transact'},
{name:'sPayDate'},
{name:'sEStartDate'},
{name:'sEEndDate'},
{name:'sPayMoney',type:'float'},
{name:'sPayStatus'}
];
var sStroe = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:''}),
reader: new Ext.data.JsonReader(
{
totalProperty:'ConDataForm',
root:'getContract'
},
sStract
)
});
var sFModyCon = new Ext.form.Hidden({
id:'sFMody',
name:'sFMody',
value:'2'
});
var seeTextFiled = new Ext.form.FieldSet({
id:'sFieldset_panel',
title: '增加新收费(* 为必填项)',
autoHeight:true,
//collapsible: true,
defaultType: 'textfield',
items :[sFModyCon,
{
xtype:'hidden',
id:'payID',
name:'payID'
},
{
xtype:'hidden',
id:'contractId',
value:Ext.get('contractId').getValue()
},
{
xtype:'datefield',
fieldLabel: '付款时间',
id:'sPayDate',
name: 'sPayDate',
format:'Y-m-d',
allowBlank:false,
blankText:'请输入或选择时间',
invalidText:'输入日期:<font color="#ff0000">"{0}"</font>的格式不对,请按<font color="#ff0000">"{1}"</font>格式输入',
width:120
},{
fieldLabel: '此次金额(元)',
id:'sPayMoney',
blankText:'此次金额不能为空且为数字',
allowBlank:false,
name: 'sPayMoney'
},{
xtype:'datefield',
fieldLabel: '服务开始时间',
id:'sEStartDate',
format:'Y-m-d',
name: 'sEStartDate',
allowBlank:false,
blankText:'请输入或选择时间',
invalidText:'输入日期:<font color="#ff0000">"{0}"</font>的格式不对,请按<font color="#ff0000">"{1}"</font>格式输入',
width:120
},{
xtype:'datefield',
fieldLabel: '服务结束时间',
id:'sEEndDate',
format:'Y-m-d',
name: 'sEEndDate',
allowBlank:false,
blankText:'请输入或选择时间',
invalidText:'输入日期:<font color="#ff0000">"{0}"</font>的格式不对,请按<font color="#ff0000">"{1}"</font>格式输入',
anchor:'90%',
width:120
}]
});
function selectRow(sm, row, rec) {
Ext.getCmp('seePanel_grid').getForm().loadRecord(rec);
Ext.getCmp('sFieldset_panel').setTitle('修改收费项目(* 为必填项)');
}
var rsm = new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect:selectRow
}
});
var seeGPanel = new Ext.grid.GridPanel({
id:'seeGPanel_grid',
title:'合同编号: '+cnID,
cm:ctColumns,
ds:sStroe,
sm: rsm,
autoScroll:true,
width:693,
height:180,
loadMask:({msg :'数据正在加载中……'})
});
sStroe.load({params:{cnID:Ext.get('contractId').getValue()}});
//var listPayInfo = Ext.getCmp("seeGPanel_grid");
var conMoneySum = new Ext.Button ({
id:'conMoneySum',
name:'conMoneySum',
text:''
});
var mButn = new Ext.Button({
id:'modyPayInfo',
name:'modyPayInfo',
text:'确定',
handler: function () {
var sFieldName = Ext.getCmp('sFieldset_panel').title;
if(sFieldName == '增加新收费(* 为必填项)'){
if (!Ext.get('sPayDate').getValue()) {
Ext.get('sPayDate').focus();
return false;
}
if (isNaN(Ext.get('sPayMoney').getValue())) {
Ext.get('sPayMoney').focus();
return false;
}
if (!Ext.get('sEStartDate').getValue()) {
Ext.get('sEStartDate').focus();
return false;
}
if (!Ext.get('sEEndDate').getValue()) {
Ext.get('sEEndDate').focus();
return false;
}
sFModyCon.value = '1';
sFModyCon.setValue(sFModyCon.value);
if(seePanel.form.isValid()){
Ext.MessageBox.wait('正在保存数据中, 请稍候……');
seePanel.form.submit({
reset: true,
failure: function(form, action) {
Ext.MessageBox.hide();
//Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
sStroe.reload();
}
});
Ext.getCmp('sFieldset_panel').title = '增加新收费(* 为必填项)';
}
} else {
if (!Ext.get('sPayDate').getValue()) {
Ext.get('sPayDate').focus();
return false;
}
if (isNaN(Ext.get('sPayMoney').getValue())) {
Ext.get('sPayMoney').focus();
Ext.get('sPayMoney').setValue(1);
return false;
}
if (!Ext.get('sEStartDate').getValue()) {
Ext.get('sEStartDate').focus();
return false;
}
if (!Ext.get('sEEndDate').getValue()) {
Ext.get('sEEndDate').focus();
return false;
}
if(seePanel.form.isValid()){
Ext.MessageBox.wait('正在保存数据中, 请稍候……');
seePanel.form.submit({
reset: true,
failure: function(form, action) {
Ext.MessageBox.hide();
//Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
sStroe.reload();
}
});
Ext.getCmp('sFieldset_panel').title = '增加新收费(* 为必填项)';
}
}
}
});
var seePanel = new Ext.FormPanel({
url:'',
id:'seePanel_grid',
border:false,
frame:true,
width:705,
autoHeight:true,
//height:350,
items:[seeGPanel,seeTextFiled],
tbar:[{
id:'conMCount',
name:'conMCount',
text:'金额统计:'
},conMoneySum,'-',
{
xtype:'button',
iconCls:'excelIcon',
tooltip:'把数据导出到excel',
handler:function () {
if (sStroe.getCount() == 0) {
Ext.Msg.show({
title:'提示',
msg: '暂无数据!',
icon: Ext.MessageBox.WARNING
});
return false;
}
var contractID = document.getElementById('contractID');
var formObjList = document.getElementById('toListExcel');
contractID.value = Ext.get('contractId').getValue();
formObjList.submit();
}
},'-',
'->',
{
xtype:'button',
id:'closePayInfo',
text:'关闭',
handler:function () {
seeWind.close(this);
cmWindow.show(this);
}
}
],
bbar:['->',mButn,'-',
{
text: '清空',handler:function(){
var frm=Ext.getCmp("seePanel_grid").getForm();
frm.reset();
Ext.getCmp('sFieldset_panel').setTitle('增加新收费(* 为必填项)');
}
}]
});
seeWind = new Ext.Window({
width: 715,
border:false,
frame:true,
resizable:false,
bodyStyle:'padding-top:0px;',
closable:false,//是否可以关闭
closeAction:'hide',
defaults : {
// 容器内元素是否显示边框
border : false
},
items:[seePanel]
});
function changRowNum(grid,rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
var dataValue = record.get(fieldName);
if (fieldName == 'sPayStatus') {
if (dataValue == '未支付') {
seePanel.form.submit({
reset: true,
url:'',
method:'GET',
failure: function(form, action) {
Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
sStroe.reload();
}
});
} else if (dataValue == '已支付'){
seePanel.form.submit({
reset: true,
url:'',
method:'GET',
failure: function(form, action) {
Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
sStroe.reload();
}
});
}
}
}
seeGPanel.addListener('cellclick', changRowNum);
sStroe.on('load',function (){
conMoneySum.setText(sStroe.sum('sPayMoney',0,sStroe.getTotalCount()-1) + '元');
});
cmWindow.hide();
seeWind.show(this);
}
}
},
{
text:'关闭',
name:'closePage',
handler:function () {
cmWindow.close(this);
maskDiv.style.display = 'none';
beginDate.setValue('');
endDate.setValue('');
//mainPanel.body.unmask();
}
}];
var cPanel = new Ext.FormPanel({
url:'',
id:'cPanel',
tbar:tCBar,
defaults:{
border : false
},
items:[{autoLoad:{id:'listGrid',url: '', scope: this,callback:function(){}, scripts: true,params:'cnID='+cnID}}]
});
cmWindow = new Ext.Window({
width: 715,
border:false,
frame:true,
resizable:false,
style: {
'background-color':'#999999'
},
closable:false,//是否可以关闭
closeAction:'hide',
defaults : {
// 容器内元素是否显示边框
border : false
},
items:[cPanel]
})
cmWindow.setPosition(278,100);
cmWindow.show(this);
}
}
}
endDate.on('blur',function () {
var bDate = beginDate.getValue();
var eDate = endDate.getValue();
if (bDate)
bDate = bDate.format('Y-m-d');
else
bDate = '';
if (eDate)
eDate = eDate.format('Y-m-d');
else
eDate = '';
if (bDate == '') {
Ext.MessageBox.alert("提示","起始时间不能为空!");
}
});
function doSelect() {
var id = selectType.getValue();
var xiInfo = selectKey.getValue();//得到当前选择输入框的值
var bDate = beginDate.getValue();
var eDate = endDate.getValue();
var area = selectArea.getValue();
if (bDate == null || bDate == '') {
bDate = '';
} else
bDate = bDate.format('Y-m-d');
if (eDate== null || eDate== '') {
eDate= '';
} else
eDate= eDate.format('Y-m-d');
if(id == null || id == ''){
id = '1';
}
if(eDate && !bDate) {
Ext.MessageBox.alert("提示","请选择开始结束时间!");
return false;
}
if(bDate && eDate == '') {
Ext.MessageBox.alert("提示","请选择结束结束时间!");
return false;
}
if (bDate && eDate)
if (compareDate(eDate,bDate) == 2) {
Ext.MessageBox.alert("提示","结束时间不能小于起始时间!");
return false;
}
store.load({params:{start:0,limit:15,typeId:id,info:xiInfo,beginDate:bDate,endDate:eDate,area:area}});
}
function compareDate(DateOne,DateTwo) {
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-"));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ("-"));
var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-"));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-"));
if (Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) > Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear))
return 1;
else
return 2;
}
function exportExcel() {
if (store.getCount() == 0) {
Ext.Msg.show({
title:'提示',
msg: '暂无数据!',
icon: Ext.MessageBox.WARNING
});
return false;
}
var conID = selectType.getValue();
var xiInfo = selectKey.getValue();//得到当前选择输入框的值
var bDate = beginDate.getValue();
var eDate = endDate.getValue();
var area = selectArea.getValue();
if (bDate)
bDate = bDate.format('Y-m-d');
else
bDate = '';
if (eDate)
eDate = eDate.format('Y-m-d');
else
eDate = '';
var typeIDHidden = document.getElementById('typeID');
var infoHidden = document.getElementById('info');
var begDate = document.getElementById('begDate');
var enDate = document.getElementById('enDate');
var areaSet = document.getElementById('areaSet');
typeIDHidden.value = conID;
infoHidden.value = xiInfo;
begDate.value = bDate;
enDate.value = eDate;
areaSet.value = area;
var formObj = document.getElementById('toExce');
formObj.submit();
}
store.on('load', function() { //数据加载完毕后触发事件
var el = Ext.get('contract-grid');
var tableObj = el.select('table.x-grid3-row-table');
var k = 0;
var j = 0;
var n = 0;
for (var i = 0; i < store.getCount(); i++) {
if (store.getAt(i).get('contractStatus') == '进行中') {
k = i;
tableObj.item(k).addClass('x-grid3-row-customOne-class');
} else if (store.getAt(i).get('contractStatus') == '结束') {
j = i;
tableObj.item(j).addClass('x-grid3-row-customTwo-class');
} else if (store.getAt(i).get('contractStatus') == '完成') {
n = i;
tableObj.item(n).addClass('x-grid3-row-customThree-class');
}
}
});
});
转载自http://www.iteye.com/topic/196314
// JavaScript Document
/**
* @author Erit
*/
Ext.onReady(function(){
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
Ext.BLANK_IMAGE_URL = '../images/default/s.gif';
var frm = Ext.form;
var columns = [
{
id:'contractId',
header:'合同编号',
sortable:false,
align: 'center',
renderer:function (v) {
return '<span class="index_listid_underline" style="cursor:pointer;">' + v + '</font>';
},
dataIndex:'contractId',
width:60
},
{
id:'areaName',
header:'区域',
dataIndex:'areaName',
align: 'center',
sortable: true,
width:60
},
{
id:'agencyName',
header:'客户名称',
dataIndex:'agencyName',
align: 'center',
sortable: true,
width:120
},
{
id:'efDate',
header:'开通日期',
align: 'center',
dataIndex:'efDate',
sortable:true,
//renderer: Ext.util.Format.dateRenderer('Y年m月d日'),
width:100
},
{
id:'joinMode',
header:'加盟方式',
dataIndex:'joinMode',
align: 'center',
sortable:true,
width:80
},
{
id:'contractStatus',
header:'合同状态',
dataIndex:'contractStatus',
align: 'center',
sortable:true,
width:100
}
];
var contract = [
{name:'areaName',type:'string'},
{name:'agencyName',type:'string'},
{name:'contractId',type:'string'},
{name:'efDate',type:'string'},
{name:'joinMode',type:'string'},
{name:'contractStatus',type:'string'}
];
var store = new Ext.data.GroupingStore({
proxy: new Ext.data.HttpProxy({url:''}),
reader: new Ext.data.JsonReader(
{
totalProperty:'dataForm',
root:'contract'
},
contract
),
remoteSort: true,
sortInfo:{field: 'areaName', direction: "DESC"},
groupField:'areaName'
});
var view = new Ext.grid.GroupingView({
forceFit:true,
sortAscText :'正序',
sortDescText :'倒序',
columnsText:'列显示/隐藏',
groupByText:'依本列分组',
showGroupsText:'分组显示',
groupTextTpl: '{text} ({[values.rs.length]} {[values.rs.length > 0 ? "份合同" : "暂无合同"]})'
})
var store_selectType = new Ext.data.SimpleStore({
fields: ['typeCode', 'typeText'],
data : [
[1,'不限'],
[2, '合同编号'],
[3,'区域'],
[4,'加盟方式'],
[5,'合同状态'],
[6,'客户名称']
]
});
var selectType = new Ext.form.ComboBox({//查询类别的下拉框
store:store_selectType,
name: 'selectTypeName',
valueField:'typeCode',
displayField:'typeText',
typeAhead: true,
editable:false,//不可编辑的
mode: 'local',//本地模式
triggerAction: 'all',
blankText:'不限',
emptyText:'不限',
width:80
});
var store_selectArea = new Ext.data.SimpleStore({
fields: ['areaCode', 'areaText'],
data : [
[1,'不限'],
[2, '黄浦'],
[3,'浦东'],
[4,'闸北'],
[5,'闵行'],
[6,'徐汇'],
[7,'杨浦'],
[8,'虹口'],
[9,'长宁'],
[10,'静安'],
[11,'卢湾'],
[12,'宝山'],
[13,'嘉定'],
[14,'青浦'],
[15,'奉贤'],
[16,'南汇'],
[17,'普陀'],
[18,'金山'],
[19,'松江'],
[20,'崇明'],
[21,'周边地区']
]
});
var selectArea = new Ext.form.ComboBox({//查询类别的下拉框
store:store_selectArea,
name: 'selectAreaName',
valueField:'areaText',
displayField:'areaText',
typeAhead: true,
editable:false,//不可编辑的
mode: 'local',//本地模式
triggerAction: 'all',
blankText:'不限',
emptyText:'不限',
width:80
});
var beginDate = new Ext.form.DateField({
name: 'beginDate',
width:100,
readOnly:true,
format: 'Y年m月d日'
});
var endDate = new Ext.form.DateField({
id: 'endDate',
width:100,
readOnly:true,
format: 'Y年m月d日'
});
var selectKey = new Ext.form.TextField({
name:'KeyInfo',
width:80
});
var tbar =[
{
xtype:'button',
iconCls:'excelIcon',
tooltip:'把数据导出到excel',
handler:exportExcel
},'-',
'->','开始时间:',beginDate,'-','结束时间:',endDate,'-','区域:',selectArea,'-','查询条件:',selectType,'-','查询关键字:',selectKey,'-',
{
text:'查询',
handler:doSelect
}
];
var grid = new Ext.grid.GridPanel({
el:'contract-grid',
id:'contract-grid',
store: store,
columns: columns,
bodyBorder:false,
sm: new Ext.grid.RowSelectionModel({selectRow:Ext.emptyFn}),
view:view,
loadMask:({msg :'数据正在加载中……'}),
width: 1024,
height: 474,
tbar:tbar,
bbar:new Ext.PagingToolbar(
{
pageSize:15,
store:store,
displayInfo:true,
beforePageText:'第',
afterPageText:'页 共 {0} 页',
refreshText:'刷新',
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条合同记录',
emptyMsg: '没有记录'
})
});
grid.render();
store.load({params:{start:0, limit:15}});
grid.addListener('cellclick', cellclick);
//var mainPanel = Ext.getCmp('contract-grid');
function cellclick(grid,rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
var maskDiv = document.getElementById('extMask');
var cnID = record.get('contractId');
if (fieldName == 'contractId') {
var cmWindow;
if (!cmWindow) {
//mainPanel.body.mask();
maskDiv.style.display = '';
var tCBar = ['->',{
text:'确定修改',
name:'saveContract',
handler:function(){
if (!Ext.get('idForContract').getValue()) {
Ext.MessageBox.alert('提示','合同编号不能为空!');
return false;
}
if (!Ext.get('agency').getValue()) {
Ext.MessageBox.alert('提示','中介名称不能为空!');
return false;
}
if (!Ext.get('join_mode').getValue()) {
Ext.MessageBox.alert('提示','加盟形式不能为空!');
return false;
}
if (!Ext.get('service_item').getValue()) {
Ext.MessageBox.alert('提示','服务项目不能为空!');
return false;
}
if (!Ext.get('efficient_date').getValue()) {
Ext.MessageBox.alert('提示','开通日期不能为空且格式为 年-月-日!');
return false;
} else if(!dateCheck(Ext.get('efficient_date').getValue())) {
Ext.MessageBox.alert('提示','开通日期格式为 年-月-日!');
return false;
}
if (!Ext.get('end_date').getValue()) {
Ext.MessageBox.alert('提示','时间截点不能为空且格式为 年-月-日!');
return false;
}else if(!dateCheck(Ext.get('end_date').getValue())) {
Ext.MessageBox.alert('提示','时间截点格式为 年-月-日!');
return false;
}
if(cPanel.form.isValid()){
Ext.MessageBox.wait('正在保存数据中, 请稍候……');
cPanel.form.submit({
//reset: true,
failure: function(form, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
cmWindow.close(this);
store.reload({params:{start:0, limit:15}});
//mainPanel.body.unmask();
maskDiv.style.display = 'none';
beginDate.setValue('');
endDate.setValue('');
}
});
}
}
},'-',
{
text:'查看收费详情',
id:'seeContract',
handler:function () {
var seeWind;
if (!seeWind) {
var ctColumns = new Ext.grid.ColumnModel([{
hidden:true,
id:'payID',
dataIndex:'payID'
},{
id:'transact',
header:'执行例次',
dataIndex:'transact',
renderer:function (v) {
return '<span class="index_listid_underline" style="cursor:pointer;">第' + v + '次</span>';
},
align:'center',
width:90
},
{
id:'sPayDate',
header:'付款时间',
dataIndex:'sPayDate',
align:'center',
width:140
},
{
id:'sPayMoney',
header:'此次金额(元)',
dataIndex:'sPayMoney',
align:'center',
width:100
},
{
id:'sEStartDate',
header:'服务开始时间',
dataIndex:'sEStartDate',
align:'center',
width:130
},
{
id:'sEEndDate',
header:'服务结束时间',
dataIndex:'sEEndDate',
align:'center',
width:130
},
{
id:'sPayStatus',
header:'状态',
dataIndex:'sPayStatus',
align:'center',
renderer:function (v) {
if (v == '已支付')
return '<span class="index_listid_underline" style="cursor:pointer;">' + v + '</span>';
else if (v == '未支付')
return '<span class="index_listid_underline" style="cursor:pointer;">' + v + '</span>';
},
width:81
}]
);
var sStract = [
{name:'payID'},
{name:'transact'},
{name:'sPayDate'},
{name:'sEStartDate'},
{name:'sEEndDate'},
{name:'sPayMoney',type:'float'},
{name:'sPayStatus'}
];
var sStroe = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:''}),
reader: new Ext.data.JsonReader(
{
totalProperty:'ConDataForm',
root:'getContract'
},
sStract
)
});
var sFModyCon = new Ext.form.Hidden({
id:'sFMody',
name:'sFMody',
value:'2'
});
var seeTextFiled = new Ext.form.FieldSet({
id:'sFieldset_panel',
title: '增加新收费(* 为必填项)',
autoHeight:true,
//collapsible: true,
defaultType: 'textfield',
items :[sFModyCon,
{
xtype:'hidden',
id:'payID',
name:'payID'
},
{
xtype:'hidden',
id:'contractId',
value:Ext.get('contractId').getValue()
},
{
xtype:'datefield',
fieldLabel: '付款时间',
id:'sPayDate',
name: 'sPayDate',
format:'Y-m-d',
allowBlank:false,
blankText:'请输入或选择时间',
invalidText:'输入日期:<font color="#ff0000">"{0}"</font>的格式不对,请按<font color="#ff0000">"{1}"</font>格式输入',
width:120
},{
fieldLabel: '此次金额(元)',
id:'sPayMoney',
blankText:'此次金额不能为空且为数字',
allowBlank:false,
name: 'sPayMoney'
},{
xtype:'datefield',
fieldLabel: '服务开始时间',
id:'sEStartDate',
format:'Y-m-d',
name: 'sEStartDate',
allowBlank:false,
blankText:'请输入或选择时间',
invalidText:'输入日期:<font color="#ff0000">"{0}"</font>的格式不对,请按<font color="#ff0000">"{1}"</font>格式输入',
width:120
},{
xtype:'datefield',
fieldLabel: '服务结束时间',
id:'sEEndDate',
format:'Y-m-d',
name: 'sEEndDate',
allowBlank:false,
blankText:'请输入或选择时间',
invalidText:'输入日期:<font color="#ff0000">"{0}"</font>的格式不对,请按<font color="#ff0000">"{1}"</font>格式输入',
anchor:'90%',
width:120
}]
});
function selectRow(sm, row, rec) {
Ext.getCmp('seePanel_grid').getForm().loadRecord(rec);
Ext.getCmp('sFieldset_panel').setTitle('修改收费项目(* 为必填项)');
}
var rsm = new Ext.grid.RowSelectionModel({
singleSelect: true,
listeners: {
rowselect:selectRow
}
});
var seeGPanel = new Ext.grid.GridPanel({
id:'seeGPanel_grid',
title:'合同编号: '+cnID,
cm:ctColumns,
ds:sStroe,
sm: rsm,
autoScroll:true,
width:693,
height:180,
loadMask:({msg :'数据正在加载中……'})
});
sStroe.load({params:{cnID:Ext.get('contractId').getValue()}});
//var listPayInfo = Ext.getCmp("seeGPanel_grid");
var conMoneySum = new Ext.Button ({
id:'conMoneySum',
name:'conMoneySum',
text:''
});
var mButn = new Ext.Button({
id:'modyPayInfo',
name:'modyPayInfo',
text:'确定',
handler: function () {
var sFieldName = Ext.getCmp('sFieldset_panel').title;
if(sFieldName == '增加新收费(* 为必填项)'){
if (!Ext.get('sPayDate').getValue()) {
Ext.get('sPayDate').focus();
return false;
}
if (isNaN(Ext.get('sPayMoney').getValue())) {
Ext.get('sPayMoney').focus();
return false;
}
if (!Ext.get('sEStartDate').getValue()) {
Ext.get('sEStartDate').focus();
return false;
}
if (!Ext.get('sEEndDate').getValue()) {
Ext.get('sEEndDate').focus();
return false;
}
sFModyCon.value = '1';
sFModyCon.setValue(sFModyCon.value);
if(seePanel.form.isValid()){
Ext.MessageBox.wait('正在保存数据中, 请稍候……');
seePanel.form.submit({
reset: true,
failure: function(form, action) {
Ext.MessageBox.hide();
//Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
sStroe.reload();
}
});
Ext.getCmp('sFieldset_panel').title = '增加新收费(* 为必填项)';
}
} else {
if (!Ext.get('sPayDate').getValue()) {
Ext.get('sPayDate').focus();
return false;
}
if (isNaN(Ext.get('sPayMoney').getValue())) {
Ext.get('sPayMoney').focus();
Ext.get('sPayMoney').setValue(1);
return false;
}
if (!Ext.get('sEStartDate').getValue()) {
Ext.get('sEStartDate').focus();
return false;
}
if (!Ext.get('sEEndDate').getValue()) {
Ext.get('sEEndDate').focus();
return false;
}
if(seePanel.form.isValid()){
Ext.MessageBox.wait('正在保存数据中, 请稍候……');
seePanel.form.submit({
reset: true,
failure: function(form, action) {
Ext.MessageBox.hide();
//Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示',action.result.info);
sStroe.reload();
}
});
Ext.getCmp('sFieldset_panel').title = '增加新收费(* 为必填项)';
}
}
}
});
var seePanel = new Ext.FormPanel({
url:'',
id:'seePanel_grid',
border:false,
frame:true,
width:705,
autoHeight:true,
//height:350,
items:[seeGPanel,seeTextFiled],
tbar:[{
id:'conMCount',
name:'conMCount',
text:'金额统计:'
},conMoneySum,'-',
{
xtype:'button',
iconCls:'excelIcon',
tooltip:'把数据导出到excel',
handler:function () {
if (sStroe.getCount() == 0) {
Ext.Msg.show({
title:'提示',
msg: '暂无数据!',
icon: Ext.MessageBox.WARNING
});
return false;
}
var contractID = document.getElementById('contractID');
var formObjList = document.getElementById('toListExcel');
contractID.value = Ext.get('contractId').getValue();
formObjList.submit();
}
},'-',
'->',
{
xtype:'button',
id:'closePayInfo',
text:'关闭',
handler:function () {
seeWind.close(this);
cmWindow.show(this);
}
}
],
bbar:['->',mButn,'-',
{
text: '清空',handler:function(){
var frm=Ext.getCmp("seePanel_grid").getForm();
frm.reset();
Ext.getCmp('sFieldset_panel').setTitle('增加新收费(* 为必填项)');
}
}]
});
seeWind = new Ext.Window({
width: 715,
border:false,
frame:true,
resizable:false,
bodyStyle:'padding-top:0px;',
closable:false,//是否可以关闭
closeAction:'hide',
defaults : {
// 容器内元素是否显示边框
border : false
},
items:[seePanel]
});
function changRowNum(grid,rowIndex, columnIndex, e) {
var record = grid.getStore().getAt(rowIndex);
var fieldName = grid.getColumnModel().getDataIndex(columnIndex);
var dataValue = record.get(fieldName);
if (fieldName == 'sPayStatus') {
if (dataValue == '未支付') {
seePanel.form.submit({
reset: true,
url:'',
method:'GET',
failure: function(form, action) {
Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
sStroe.reload();
}
});
} else if (dataValue == '已支付'){
seePanel.form.submit({
reset: true,
url:'',
method:'GET',
failure: function(form, action) {
Ext.MessageBox.alert('提示',action.result.info);
},
success: function(form_instance_create, action) {
sStroe.reload();
}
});
}
}
}
seeGPanel.addListener('cellclick', changRowNum);
sStroe.on('load',function (){
conMoneySum.setText(sStroe.sum('sPayMoney',0,sStroe.getTotalCount()-1) + '元');
});
cmWindow.hide();
seeWind.show(this);
}
}
},
{
text:'关闭',
name:'closePage',
handler:function () {
cmWindow.close(this);
maskDiv.style.display = 'none';
beginDate.setValue('');
endDate.setValue('');
//mainPanel.body.unmask();
}
}];
var cPanel = new Ext.FormPanel({
url:'',
id:'cPanel',
tbar:tCBar,
defaults:{
border : false
},
items:[{autoLoad:{id:'listGrid',url: '', scope: this,callback:function(){}, scripts: true,params:'cnID='+cnID}}]
});
cmWindow = new Ext.Window({
width: 715,
border:false,
frame:true,
resizable:false,
style: {
'background-color':'#999999'
},
closable:false,//是否可以关闭
closeAction:'hide',
defaults : {
// 容器内元素是否显示边框
border : false
},
items:[cPanel]
})
cmWindow.setPosition(278,100);
cmWindow.show(this);
}
}
}
endDate.on('blur',function () {
var bDate = beginDate.getValue();
var eDate = endDate.getValue();
if (bDate)
bDate = bDate.format('Y-m-d');
else
bDate = '';
if (eDate)
eDate = eDate.format('Y-m-d');
else
eDate = '';
if (bDate == '') {
Ext.MessageBox.alert("提示","起始时间不能为空!");
}
});
function doSelect() {
var id = selectType.getValue();
var xiInfo = selectKey.getValue();//得到当前选择输入框的值
var bDate = beginDate.getValue();
var eDate = endDate.getValue();
var area = selectArea.getValue();
if (bDate == null || bDate == '') {
bDate = '';
} else
bDate = bDate.format('Y-m-d');
if (eDate== null || eDate== '') {
eDate= '';
} else
eDate= eDate.format('Y-m-d');
if(id == null || id == ''){
id = '1';
}
if(eDate && !bDate) {
Ext.MessageBox.alert("提示","请选择开始结束时间!");
return false;
}
if(bDate && eDate == '') {
Ext.MessageBox.alert("提示","请选择结束结束时间!");
return false;
}
if (bDate && eDate)
if (compareDate(eDate,bDate) == 2) {
Ext.MessageBox.alert("提示","结束时间不能小于起始时间!");
return false;
}
store.load({params:{start:0,limit:15,typeId:id,info:xiInfo,beginDate:bDate,endDate:eDate,area:area}});
}
function compareDate(DateOne,DateTwo) {
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-"));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ("-"));
var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-"));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-"));
if (Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) > Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear))
return 1;
else
return 2;
}
function exportExcel() {
if (store.getCount() == 0) {
Ext.Msg.show({
title:'提示',
msg: '暂无数据!',
icon: Ext.MessageBox.WARNING
});
return false;
}
var conID = selectType.getValue();
var xiInfo = selectKey.getValue();//得到当前选择输入框的值
var bDate = beginDate.getValue();
var eDate = endDate.getValue();
var area = selectArea.getValue();
if (bDate)
bDate = bDate.format('Y-m-d');
else
bDate = '';
if (eDate)
eDate = eDate.format('Y-m-d');
else
eDate = '';
var typeIDHidden = document.getElementById('typeID');
var infoHidden = document.getElementById('info');
var begDate = document.getElementById('begDate');
var enDate = document.getElementById('enDate');
var areaSet = document.getElementById('areaSet');
typeIDHidden.value = conID;
infoHidden.value = xiInfo;
begDate.value = bDate;
enDate.value = eDate;
areaSet.value = area;
var formObj = document.getElementById('toExce');
formObj.submit();
}
store.on('load', function() { //数据加载完毕后触发事件
var el = Ext.get('contract-grid');
var tableObj = el.select('table.x-grid3-row-table');
var k = 0;
var j = 0;
var n = 0;
for (var i = 0; i < store.getCount(); i++) {
if (store.getAt(i).get('contractStatus') == '进行中') {
k = i;
tableObj.item(k).addClass('x-grid3-row-customOne-class');
} else if (store.getAt(i).get('contractStatus') == '结束') {
j = i;
tableObj.item(j).addClass('x-grid3-row-customTwo-class');
} else if (store.getAt(i).get('contractStatus') == '完成') {
n = i;
tableObj.item(n).addClass('x-grid3-row-customThree-class');
}
}
});
});
发表评论
-
extjs Ext.tree.TreeEditor 节点编辑状态前后
2010-11-11 15:41 3558//这里面添加代码 treeEditer = new Ex ... -
Ext带验证码登录框可刷新验证码
2009-11-06 14:49 2862js代码 程序代码 // @filename logi ... -
EXT 之事件处理
2009-10-21 12:08 1477ExtJS提供了一套强大的事件处理机制,通过这些事件处理机制来 ... -
extjs疑问
2009-10-16 14:28 1442Ext.onReady()与Ext.EventManager. ... -
Ext中Resizable的使用方法
2009-10-16 14:23 4070ResizableExample = { init: ... -
Extjs 简单扩展 Component 实现点击刷新的验证码。
2009-10-15 09:41 2056view plaincopy to clipboardprin ... -
用extjs做的appspot网站
2009-09-28 09:35 2083用extjs做的appspot网站 在日常生活中,经常花了钱 ... -
验证图片客户端控制类for Ext
2009-09-28 09:30 1060验证图片客户端控制类for Ext obj = page ... -
ExtJS2.0+struts实现文件上传
2009-09-28 09:29 1383ExtJS2.0+struts实现文件上传 Extjs+str ... -
超简单实现:Ext.TabPanel加入iframe
2009-09-28 09:28 987超简单实现:Ext.TabPanel加入iframe 转载自 ... -
ext select
2009-09-28 09:28 1930为感谢论坛发布 http://blog.csdn.net/ed ... -
Ext Portal 新例子
2009-09-28 09:26 3240Ext Portal 新例子 我综合了Ext社区目前有关Ex ... -
在EXT中使用FCKEditor编辑器例子
2009-09-28 09:21 1112在EXT中使用FCKEditor编辑器例子 转载自http: ... -
ext2的树组件的使用(从底层到表现层,异步加载)
2009-09-28 09:20 893ext2的树组件的使用(从 ... -
EXT2.0 checkbox树的扩展
2009-09-28 09:16 1411EXT2.0 checkbox树的扩展(支持单选,级联多选,只 ... -
部分出现Ext.Fly()为空或不是对象
2009-09-28 09:01 7622在ie7 ,ie8下 数据绑定下的页面都会出现 Ext.Fly ... -
Ext.get()与Ext.fly()又什么不同
2009-09-28 08:54 2846Ext.get()每次都会创建对象.而fly则会去缓存中查找, ...
相关推荐
《GWT-EXT2.0最佳实践教程》源代码打包下载资源主要涵盖了Google Web Toolkit (GWT) 和EXT-JS 2.0的结合使用,提供了丰富的实践案例和示例代码,旨在帮助开发者深入理解和应用这两项技术。GWT是一款强大的JavaScript...
"ext2.0+Hibernate+dwr+spring列子"是一个综合性的Web开发示例,它演示了如何利用EXT2.0创建用户友好的界面,借助Hibernate处理数据库操作,通过DWR实现前后端交互,以及使用Spring框架来组织和管理整个应用的结构。...
【标题】"java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)" 涉及的核心技术是Java Web开发中的几个关键组件,包括ExtJS 2.0前端框架,Spring、Struts2和Hibernate(SSH)后端框架,Oracle 10g数据库以及Lucene ...
总的来说,“龙门物流管理系统(Ext+SSH)”是一个集成了现代前端技术和成熟后端框架的综合解决方案,为企业提供了一套全面的物流业务管理平台。通过合理利用这些技术,可以有效提升物流效率,降低运营成本,并提供...
综合这四者,我们可以构建一个高效、可维护的Java Web应用。EXT JS 2.1负责前端交互和UI展示,Struts 2.0作为MVC框架处理HTTP请求和业务逻辑,Spring 2.5提供依赖注入和事务管理,以及与Struts 2和Hibernate的整合,...
总结来说,这个开源项目展示了如何综合运用Struts2.0、Spring、Hibernate和Ext来实现一个美观且功能完善的文件上传系统。通过学习这个项目,开发者可以深入理解这四个技术在实际项目中的应用,提升自己的Java Web...
Ext2.0是一个JavaScript UI库,提供了丰富的组件和美观的界面设计,用于构建富客户端应用。在本系统的前端展示部分,Ext2.0可以创建出交互性强、用户体验良好的界面。通过Ajax技术,它能够与后台Spring服务进行异步...
1. 提供了各种组件效果和应用场景,展示如何综合应用Ext的简单控件。 **六、WebIM系统** 1. 使用EJS技术架构,提供在线即时交流、聊天记录保存、多人会议室和房间管理等功能。 2. 应用于vifir在线客服和技术咨询...
EXT 2.0是该框架的一个重要版本,引入了许多新功能和改进,进一步提高了开发者构建复杂Web应用的能力。 #### 三、EXT的学习资源 对于希望深入学习EXT的开发者来说,以下网站提供了一些有用的资源: - ...
- **ExtJs2.0学习笔记(组件总论篇)**:这是一个综合性的章节,概括了Ext JS 2.0中各种组件的特点和用途。 - **ExtJs2.0学习笔记(Ext.ElementAPI总结)**:这部分内容总结了`Ext.Element`API的关键功能,包括DOM操作...
综合这些信息,我们可以推测这是一个针对EXT2文件系统的Web应用示例,用户可以通过浏览器界面查看和编辑EXT2文件系统的叶子节点。这个应用可能使用JSP来处理服务器端逻辑,JavaScript则负责前端的用户交互和数据验证...
本设计以“中国移动计费账务管理系统”为主题,采用Java服务器页面(JSP)技术进行开发,并结合ext2.0框架构建用户界面,旨在提升学生的实际开发能力和项目管理技能。 首先,我们要理解JSP(Java Server Pages)是...
2. **Ext GWT 2.0 Widget Library**:详细介绍了Ext GWT 2.0版本提供的各种组件,这些组件基于最新的GWT 1.6框架,极大地丰富了开发者的选择,并简化了RIA应用的开发过程。 3. **高级定制组件和模板**:通过示例...
6. **EXT2.0中文教程.pdf**:这是另一本ExtJS 2.0的中文教程,可能包含了更多的示例和实战案例,旨在帮助开发者深入理解并熟练运用ExtJS开发复杂的Web应用。 7. **EXT 中文手册.pdf**:这可能是对ExtJS的手册性解读...
3. **ExtJS教程**: 包含了`第2步 Ext2.CHM`和`第4步 ExtJS 2.0实用简明教程.chm`,这些可能是关于早期版本ExtJS的教程,对于初学者而言,理解框架的历史和不同版本间的差异很重要。尽管这里提到的是ExtJS 2.x版本,...
标题中的“Knx ATmega128A Dimmer 2.0_PWMLED_knx_dimmer_LED_”表明这是一个基于ATmega128A微控制器的KNX(欧洲建筑自动化标准)智能调光器项目,专门针对LED灯具设计,利用PWM(脉宽调制)技术进行亮度控制。...
项目主要包括五个部分,分别是蓝牙技术应用与实践、GPRS技术应用开发、ZigBee技术应用开发、Wi-Fi技术应用以及无线网的综合实践。 #### 任务一:蓝牙技术应用与实践 **5.1.1 蓝牙技术的背景知识** 蓝牙技术由...
9. **完整示例应用**:最后,通过一个完整的客户端-服务器应用程序示例,展示了如何综合运用上述所有技术和方法来构建一个企业级的RIA。 #### 四、读者对象 - **专业开发者**:本书面向已经具备一定Java开发基础的...