extjs报错,求指教

c00757341 2011-08-30 09:20:06
<%@ page language="java" import="java.util.*"  contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<html>
<head>
<title>数据列表</title>
<script type="text/javascript">

function chckeDate(){
var v1 = Ext.getCmp("startDate").getValue();
var v2 = Ext.getCmp("endDate").getValue();
if(v1=="" || v2=="") return true;
return v2 > v1;
}

function chckeDate1(){
var v1 = Ext.getCmp("bankInnerDate").getValue();
var v2 = Ext.getCmp("revocationDate").getValue();
if(v1=="" || v2=="") return true;
return v2 > v1;
}

Ext.onReady(function(){
//定义数据集对象

Ext.override(Ext.menu.Menu, {
autoWidth : function(){
var el = this.el, ul = this.ul;
if(!el){
return;
}
var w = this.width;
if(w){
el.setWidth(w);
}else if(Ext.isIE && !Ext.isIE8){ //Ext2.1.1 支持 Ext.isIE8 属性
el.setWidth(this.minWidth);
var t = el.dom.offsetWidth;
el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));
}
}
});

var checkStore = new Ext.data.Store({//配置分组数据集
autoLoad :true,
reader: new Ext.data.XmlReader({
totalRecords: "results",
record: "SysData",
id: "id"
},
Ext.data.Record.create([
{name: 'id'},
{name: 'bankName'},
{name: 'bankCode'},
{name: 'account'},
{name: 'accountName'},
{name: 'accountProperty'},
{name: 'bankInnerDate'},
{name: 'accountState'},
{name: 'firstDate'},
{name: 'lastDate'},
{name: 'depositor'},
{name: 'approval'},
{name: 'regAreaCode'},
{name: 'revocationDate'}
])
),
proxy : new Ext.data.HttpProxy({
url : 'fileUpload.action?method=dataList&type=3&state=3'
})
});

var typeStore = new Ext.data.Store({//配置分组数据集

reader: new Ext.data.XmlReader({
totalRecords: "results",
record: "SysData",
id: "id"
},
Ext.data.Record.create([
{name: 'id'},
{name: 'bankName'},
{name: 'bankCode'},
{name: 'account'},
{name: 'accountName'},
{name: 'accountProperty'},
{name: 'bankInnerDate'},
{name: 'accountState'},
{name: 'firstDate'},
{name: 'lastDate'},
{name: 'depositor'},
{name: 'approval'},
{name: 'regAreaCode'},
{name: 'revocationDate'}
])
),
proxy : new Ext.data.HttpProxy({
url : 'fileUpload.action?method=dataList&type=3'
})
});

//创建工具栏组件
var toolbar = new Ext.Toolbar([
{text : '导入数据',iconCls:'add',handler : showAddBookType},
{text : '检查数据',iconCls:'add',handler : checkData},
{text : '修改数据',iconCls:'option',handler : showModifyBank},
{text : '删除数据',iconCls:'remove',handler : showDeleteBookType},
{text : '数据上报',iconCls:'add',handler : uploadData},
{text : '数据对比',iconCls:'add',handler : contrastData}
]);
//创建Grid表格组件
var cb = new Ext.grid.CheckboxSelectionModel()
var colModel = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer({
header : '行号',
width : 40
}),//表格行号组件
cb,
{header: "序号", width: 80, dataIndex: 'id', sortable: true},
{header: "银行机构名称", width: 180, dataIndex: 'bankName', sortable: true},
{header: "银行机构代码", width: 280, dataIndex: 'bankCode', sortable: true},
{header: "账号", width: 280, dataIndex: 'account', sortable: true},
{header: "账户名称", width: 280, dataIndex: 'accountName', sortable: true},
{header: "存款人名称", width: 280, dataIndex: 'depositor', sortable: true},
{header: "账户性质", width: 280, dataIndex: 'accountProperty', sortable: true},
{header: "注册地地区代码", width: 280, dataIndex: 'regAreaCode', sortable: true},
{header: "开户许可证核准号", width: 280, dataIndex: 'approval', sortable: true},
{header: "开户日期", width: 280, dataIndex: 'bankInnerDate', sortable: true},
{header: "撤销日期", width: 280, dataIndex: 'revocationDate', sortable: true},
{header: "账户状态", width: 280, dataIndex: 'accountState', sortable: true}
]);
var pageTolbar=new Ext.PagingToolbar({
pageSize: 20,//每页显示的记录值
store: typeStore,
displayInfo: true,
displayMsg: '从{0}条数据到{1}条数据,共{2}条数据',
emptyMsg: "没有记录"
});
var dataGrid = new Ext.grid.GridPanel({
applyTo : 'grid-div',
tbar : toolbar,
store: typeStore,
autoScroll:true,
autoWidth:true,
viewConfig : {
autoFill : true
},
sm : cb,
colModel:colModel ,
bbar:pageTolbar

});
typeStore.load({params:{start:0, limit:20}});
//创建新增或修改信息的form表单
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';//统一指定错误信息提示方式
var dataForm = new Ext.FormPanel({
labelSeparator : ":",
frame:true,
border:false,
monitorValid:true,
items : [
{
xtype:'textfield',
width : 300,
allowBlank : false,
blankText : '银行机构名称不能为空',
name : 'bankName',
fieldLabel:'银行机构名称'
},{
xtype:'textfield',
width : 300,
name : 'bankCode',
allowBlank : false,
fieldLabel:'银行机构代码'
},{
xtype:'textfield',
width : 300,
allowBlank : false,
blankText : '账号不能为空',
name : 'account',
maxLength:'23',
minLength:'23',
fieldLabel:'账号'
},{
xtype:'textfield',
width : 300,
blankText : '账户名称不能为空',
allowBlank : false,
name : 'accountName',
fieldLabel:'账户名称'
},{
xtype:'textfield',
width : 300,
blankText : '存款人名称不能为空',
allowBlank : false,
name : 'depositor',
fieldLabel:'存款人名称'
},{
xtype:'textfield',
width : 300,
allowBlank : false,
blankText : '账户性质不能为空',
name : 'accountProperty',
fieldLabel:'账户性质'
},{
xtype:'textfield',
width : 300,
allowBlank : false,
blankText : '注册地地区代码不能为空',
name : 'regAreaCode',
fieldLabel:'注册地地区代码'
},{
xtype:'textfield',
width : 300,
blankText : '开户许可证不能为空',
name : 'approval',
fieldLabel:'开户许可证'
},{
xtype:'datefield',
width : 300,
allowBlank : false,
blankText : '开户日期不能为空',
name : 'bankInnerDate',
format:'Y-m-d',
id:'bankInnerDate',
//validator:chckeDate1,
fieldLabel:'开户日期'
},{
xtype:'datefield',
width : 300,
id:'revocationDate',
//allowBlank : false,
format:'Y-m-d',
//validator:chckeDate1,
blankText : '销户日期不能为空',
name : 'revocationDate',
fieldLabel:'销户日期'
},{
xtype:'textfield',
width : 300,
allowBlank : false,
name : 'accountState',
fieldLabel:'账户状态'
},{
xtype:'hidden',
name : 'id'
}
],
buttons:[
{
text : '关闭',
handler : function(){
win.hide();
}
},{
text : '提交',
formBind:true,
handler : submitForm
}
]
});
//创建弹出窗口
var win = new Ext.Window({
layout:'fit',
width:500,
closeAction:'hide',
height:400,
resizable : false,
shadow : true,
modal :true,
closable:true,
bodyStyle:'padding:5 5 5 5',
animCollapse:true,
items:[dataForm]
});

var form = new Ext.form.FormPanel({
baseCls: 'x-plain',
labelWidth: 80,
url:'fileUpload.action?method=uploadFiles&type=3',
fileUpload:true,
defaultType: 'textfield',
items: [{
xtype: 'textfield',
fieldLabel: '请选择文件',
name: 'file',
inputType: 'file',
allowBlank: false,
blankText: '文件错误',
anchor: '90%' // anchor width by percentage
}]
});

var win22 = new Ext.Window({
title: '数据导入',
width: 400,
height:200,
minWidth: 300,
minHeight: 100,
layout: 'fit',
plain:true,
modal :true,
bodyStyle:'padding:5px;',
buttonAlign:'center',
items: form,
buttons: [{
text: '导入',
handler: function() {
if(form.form.isValid()){
//Ext.MessageBox.show({
//title: '正在上传',
// msg: '请稍等……………………',
// progressText: '',
// width:300,
// progress:true,
// closable:false,
// animEl: 'loding'
//});
form.getForm().submit({
waitMsg:"请稍等,正在导入………………",
success: function(form, action){
Ext.Msg.alert('提示',"数据导入成功");
win22.hide();

dataGrid.store.reload();
},
failure: function(form, action){
var result = Ext.util.JSON.decode(action.response.responseText);
Ext.Msg.alert('提示', result.msg);
}
})
}
}
},{
text: '关闭',
handler:function(){win22.hide();}
}]
});

var bankStore = new Ext.data.Store({//配置分组数据集
autoLoad :true,
reader: new Ext.data.XmlReader({
totalRecords: "results",
record: "SysBank",
id: "codes"
},['codes','bankName']),
proxy : new Ext.data.HttpProxy({
url : 'login.action?method=bankList&bankType=1'
})
});

...全文
518 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
c00757341 2011-08-31
  • 打赏
  • 举报
回复
检查到是submit后,后台接受函数参数错误导致的问题。散分了。
c00757341 2011-08-30
  • 打赏
  • 举报
回复
不要沉了啊
c00757341 2011-08-30
  • 打赏
  • 举报
回复
顶上,应该不是这个原因
Exodia 2011-08-30
  • 打赏
  • 举报
回复
autoWidth : function(){
var el = this.el, ul = this.ul;
if(!el){
return;
}
var w = this.width;
if(w){
el.setWidth(w);
}else if(Ext.isIE && !Ext.isIE8){ //Ext2.1.1 支持 Ext.isIE8 属性
el.setWidth(this.minWidth);
var t = el.dom.offsetWidth;
el.setWidth(ul.getWidth()+el.getFrameWidth("lr"));
}
}


autoWidth这个属性不是个值么,你设置为函数,要么就为自运行函数返回一个值。
c00757341 2011-08-30
  • 打赏
  • 举报
回复
第二部分
		
var ontrastForm = new Ext.FormPanel({
labelSeparator : ":",
frame:true,
border:false,
monitorValid:true,
items : [
{
xtype:'combo',
fieldLabel:'检查机构',
width : 200,
mode:"local",
triggerAction: 'all',
editable: false,
emptyText: "请选择",
name:'branchId',
hiddenName:'branchId',
store: bankStore,
displayField: 'bankName',
valueField:'codes'
}
],
buttons:[
{
text : '关闭',
handler : function(){
ontrastWin.hide();
}
},{
text : '提交',
formBind:true,
handler : submitContrastForm
}
]
});
var ontrastWin=new Ext.Window({
layout:'fit',
width:400,
closeAction:'hide',
height:200,
resizable : false,
shadow : true,
modal :true,
closable:true,
bodyStyle:'padding:5 5 5 5',
animCollapse:true,
items:[ontrastForm]
});

function submitContrastForm(){
ontrastForm.form.submit({
//clientValidation:true,//进行客户端验证
waitMsg : '正在提交数据请稍后',//提示信息
waitTitle : '提示',//标题
url : 'contras.action?method=cons',//请求的url地址
method:'POST',//请求方式
success:function(form,action){//加载成功的处理函数
ontrastWin.hide();
Ext.Msg.alert('提示','比对成功');
},
failure:function(form,action){//加载失败的处理函数
ontrastWin.hide();
var result = Ext.util.JSON.decode(action.response.responseText);
Ext.Msg.alert('提示',result.msg);
}
});

}
function contrastData(){
Ext.MessageBox.confirm("提示","您确定要进行数据对比吗,对比后将删除您和你对比机构上报的数据",function(box){
if(box=='yes'){
ontrastWin.show();
}
});
}
dataForm.isCheck=true;
//显示新建窗口
function showAddBookType(){
if(dataForm.isCheck){
win22.show();
}

dataForm.isCheck=true;
dataGrid.reconfigure(typeStore, colModel);
//重新绑定分页工具栏
pageTolbar.bind(typeStore);
//重新加载数据集
typeStore.load({params:{start:0,limit:20}});
}


function checkData(){

dataForm.isCheck=false;
dataGrid.reconfigure(checkStore, colModel);
//重新绑定分页工具栏
pageTolbar.bind(checkStore);
//重新加载数据集
checkStore.load({params:{start:0,limit:20}});
}

//显示新建窗口
function uploadData(){
//win22.show();
var recs = dataGrid.store.getCount();
if(dataForm.isCheck){
Ext.MessageBox.alert("提示","请先检查数据后在上报数据!")
}else if(recs>0){
Ext.MessageBox.alert("提示","请将数据修改完整后上传数据!!")
}else{
Ext.MessageBox.confirm("提示","您确定要上报选数据吗?",function(btn){
if(btn=='yes'){
uploadokData();
}
})
}
}
//显示修改窗口
function showModifyBank(){
var bookTypeList = getBookTypeIdList();
var num = bookTypeList.length;
if(num > 1){
Ext.MessageBox.alert("提示","每次只能修改一条数据信息。")
}else if(num == 1){
dataForm.isAdd = false;
win.setTitle("修改数据信息");
win.show();
var bookTypeId = bookTypeList[0];
loadForm(bookTypeId);
}
}
//显示删除对话框
function showDeleteBookType(){
var bookTypeList = getBookTypeIdList();
var num = bookTypeList.length;
if(num > 1){
Ext.MessageBox.alert("提示","每次只能删除一条数据信息。")
}else if(num == 1){
Ext.MessageBox.confirm("提示","您确定要删除所选数据吗?",function(btnId){
if(btnId == 'yes'){
var bookTypeId = bookTypeList[0];
deleteBookType(bookTypeId);
}
})
}
}
//删除数据
function deleteBookType(dataid){
var msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'正在删除数据请稍后......'
});
Ext.Ajax.request({
url : 'fileUpload.action?method=delData',
params : {id : dataid},
method : 'POST',
success : function(response,options){
msgTip.hide();
var result = Ext.util.JSON.decode(response.responseText);
if(result.success){
//服务器端数据成功删除后,同步删除客户端列表中的数据
dataGrid.store.load({params:{start:0, limit:20}});
Ext.Msg.alert('提示','删除数据成功。');
}else{
}
},
failure : function(response,options){
msgTip.hide();
Ext.Msg.alert('提示','删除数据请求失败!');
}
});
}
//加载表单数据
function loadForm(bookTypeId){
dataForm.form.load({
waitMsg : '正在加载数据请稍后',//提示信息
waitTitle : '提示',//标题
url : 'fileUpload.action?method=getDataAndId',//请求的url地址
params : {id:bookTypeId},
method:'GET',//请求方式
success:function(form,action){//加载成功的处理函数
//Ext.Msg.alert('提示','数据加载成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','数据加载失败');
}
});
}

//数据上传
function uploadokData(){
var msgTip = Ext.MessageBox.show({
title:'提示',
width : 250,
msg:'正在上传数据请稍后......'
});
Ext.Ajax.request({
url : 'fileUpload.action?method=uploadData&type=3',
method : 'POST',
success : function(response,options){
msgTip.hide();
Ext.Msg.alert('提示','上报数据成功。');
},
failure : function(response,options){
msgTip.hide();
Ext.Msg.alert('提示','上报数据请求失败!');
}
});
}
//提交表单数据
function submitForm(){
//判断当前执行的提交操作,isAdd为true表示执行新增操作,false表示执行修改操作
if(dataForm.isAdd){
//新增信息
dataForm.form.submit({
//clientValidation:true,//进行客户端验证
waitMsg : '正在提交数据请稍后',//提示信息
waitTitle : '提示',//标题
url : 'fileUpload.action?method=uploadData',//请求的url地址
method:'POST',//请求方式
success:function(form,action){//加载成功的处理函数

Ext.Msg.alert('提示','上传成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','上传失败');
}
});
}else{
//修改信息
dataForm.form.submit({
clientValidation:true,//进行客户端验证
waitMsg : '正在提交数据请稍后',//提示信息
waitTitle : '提示',//标题
url : 'fileUpload.action?method=updataData',//请求的url地址
method:'POST',//请求方式
success:function(form,action){//加载成功的处理函数
win.hide();
//updateBookList(action.result.bookTypeId);
dataGrid.store.reload();
Ext.Msg.alert('提示','修改数据成功');
},
failure:function(form,action){//加载失败的处理函数
Ext.Msg.alert('提示','修改数据失败');
}
});
}
}
//明细数据修改后,同步更新表信息
function updateBookList(bookTypeId){
var fields = getFormFieldsObj(bookTypeId);
var index = typeStore.find('id',fields.id);
if(index != -1){
var item = typeStore.getAt(index);
for(var fieldName in fields){
item.set(fieldName,fields[fieldName]);
}
typeStore.commitChanges();
}else{
var rec = new Ext.data.Record(fields);
typeStore.add(rec);
}
}
//取得表单数据
function getFormFieldsObj(bookTypeId){
var fields = dataForm.items;
var obj = {};
for(var i = 0 ; i < fields.length ; i++){
var item = fields.itemAt(i);
var value = item.getValue();
obj[item.name] = value;
}
if(Ext.isEmpty(obj['id'])){
obj['id'] = bookTypeId;
}
return obj;
}
//取得所选记录
function getBookTypeIdList(){
var recs = dataGrid.getSelectionModel().getSelections();
var list = [];
if(recs.length == 0){
Ext.MessageBox.alert('提示','请选择要进行操作的数据!');
}else{
for(var i = 0 ; i < recs.length ; i++){
var rec = recs[i];
list.push(rec.get('id'))
}
}
return list;
}
});
</script>
<body>
<div id='grid-div' style="width:100%; height:100%;"/>
</body>
</html>



执行数据对比点提交按钮时,js报错行24,字符1521,语法错误,代码:0,实在找不到问题所在了,请指教。
c00757341 2011-08-30
  • 打赏
  • 举报
回复
我仔细找了下,没有啊,即使现在把那两个组件还原也报同样的错误了
豆虫 2011-08-30
  • 打赏
  • 举报
回复
那两个被你删除的组件的id 在别的地方有引用
c00757341 2011-08-30
  • 打赏
  • 举报
回复
firebug:
XML tag name mismatch (expected HR)
[在此错误处中断] </pre></p><p><b>note</b> <u>The full s...ache Tomcat/6.0.20</h3></body></html>)
ext-all.js (第 80 行)
lsw645645645 2011-08-30
  • 打赏
  • 举报
回复
Always Change 2011-08-30
  • 打赏
  • 举报
回复
哥哥,firebug打断点,走一下看看,有错误不都有提示的嘛
c00757341 2011-08-30
  • 打赏
  • 举报
回复
不是没有尝试,是实在没发现错误
c00757341 2011-08-30
  • 打赏
  • 举报
回复
我错了,简单说下,之前运行都没有问题的,因为修改原因删除了两个日期控件的代码后,按提交就报错了,删除submitContrastForm()内容的话不报错。
 var ontrastForm = new Ext.FormPanel({
labelSeparator : ":",
frame:true,
border:false,
monitorValid:true,
items : [
{
xtype:'combo',
fieldLabel:'检查机构',
width : 200,
mode:"local",
triggerAction: 'all',
editable: false,
emptyText: "请选择",
name:'branchId',
hiddenName:'branchId',
store: bankStore,
displayField: 'bankName',
valueField:'codes'
},{
删除的代码,原为日期选择框A
},{
删除的代码,原为日期选择框B
}
],
buttons:[
{
text : '关闭',
handler : function(){
ontrastWin.hide();
}
},{
text : '提交',
formBind:true,
handler : submitContrastForm
}
]
});
pjg1989 2011-08-30
  • 打赏
  • 举报
回复
问问题不带这样的啊,发主要代码就行,你全发过来别人看着烦 ...
huaye 2011-08-30
  • 打赏
  • 举报
回复
代码太多了,自己用火狐的firebug测下就知道了。。。。
豆虫 2011-08-30
  • 打赏
  • 举报
回复
我表示汗~~~
这么一大堆 好歹楼主自己先alert调试下 看到底走到哪出问题了

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧