extjs 缺少对象

HappyGirl0225 2010-11-09 05:34:38
function showRoleDialog() {
var records = grid.getSelectionModel().getSelections();;
if(records.length == 0) {
Ext.MessageBox.alert('错误', '您还没有选中任何用户!');
return;
}
if(records.length >1) {
Ext.MessageBox.alert('错误', '您只能选择一个用户!');
return;
}
// var users = new Array();
// for(var i = 0; i < records.length; i++) {
// users.push(records[i].get('username'));
// }
var username=records[0].get('username');
var groupId=records[0].get('groupId');
if(!userRoleDialog) {
// lazy initialize the dialog and only create it once

userRoleDialog = new function() {

var roleType = Ext.data.Record.create([
{name: 'id', type: 'int'},
{name: 'rolename', type: 'string'},
{name: 'groupId', type: 'int'},
{name: 'isdesc', type: 'int'},
{name: 'rolecode', type: 'string'}
]);

var formProxy=new Ext.data.DWRProxy(roleAction.findRolesByGroup,false);
var roleFromDs = new Ext.data.Store({
proxy:formProxy,
reader: new Ext.data.DwrArrayReader({id:'id'}, roleType)
});
var toProxy = new Ext.data.DWRProxy(userRoleAction.findRolesByUser,false);
var roleToDs = new Ext.data.Store({
proxy: toProxy,
reader: new Ext.data.DwrArrayReader({id:'id'}, roleType)
});

// var username; //当前编辑的用户帐号
var dataReadyFlag = false; //数据加载完成标记,确保dwr已执行完毕

toProxy.on('loaded', refreshAfterLoad);

var itemSelector = new Ext.form.FormPanel({
hideLabels: true,
width:480,
bodyStyle:'padding:5px 5px 0',
items:[{
xtype:'itemselector',
name:'roleSelector',
//fieldLabel:'权限设置',
fromStore: roleFromDs,
toStore: roleToDs,
valueField: 'rolecode',
displayField: 'rolename',
msWidth:220,
msHeight:260,
imagePath: '../../js/ext/resources/images',
toLegend:'已授予',
fromLegend:'可用'
}]
});

var dialog = new Ext.Window({
layout: 'fit',
pageX: 0,
pageY: 0,
width:490,
height:350,
resizable: false,
title: '角色设置',
//border:false,
closeAction:'hide',
plain:true,
modal: true,
items: [itemSelector],
buttons: [{
text:'保存',
handler: doSetupRole
},{
text: '取消',
handler: function() {
dialog.hide();
}
}]
});

//数据加载完毕事件,用于刷新控制标记
function refreshAfterLoad() {
//itemSelector.valueChanged(authorityToDs);
dataReadyFlag = true;
}

//保存权限设置
function doSetupRole() {
if(dataReadyFlag == false) {
Ext.MessageBox.alert('错误', '初始数据尚未加载完毕,请稍候!');
return;
}
var values = [];
var v = Ext.util.Format.trim(itemSelector.getForm().findField('roleSelector').getValue());
if(v.length > 0) {
values = values.concat(v.split(','));
}
userRoleAction.resetUserRoles(username, values, doSetupRoleResp);

function doSetupRoleResp(ret) {
Ext.MessageBox.alert('OK', '操作成功');
dialog.hide();
}
}

this.load = function(username,groupId) {
alert(username+"000000000"+groupId);
dataReadyFlag = false;
roleFromDs.removeAll();
roleToDs.removeAll();
roleFromDs.load({params:{args:[groupId]}});
roleToDs.load({params:{args:[username]}});
// username = username;
}

this.show = function() {
dialog.show();
}
}();
}
userRoleDialog.load(username,groupId);
userRoleDialog.show();
}

我的这段代码老报缺少对象啊
...全文
212 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
十橙心橙意 2010-11-09
  • 打赏
  • 举报
回复
缺少对象有可能两个原因引起,一是缺少逗号,二是变量没有声明直接用。

不知道你的userRoleDialog 怎么来的?
十橙心橙意 2010-11-09
  • 打赏
  • 举报
回复
你用火狐浏览器Firefox,里面有个错误控制台

直接能定位到某具体行!
sunliao_first 2010-11-09
  • 打赏
  • 举报
回复
弄个firebug好好调调
zidasine 2010-11-09
  • 打赏
  • 举报
回复
这么大段代码上哪去找 既然提示找不到对象就跟进去调试一下

js的调试工具也很多

怀疑grid有问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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