EXTJS 求助 关于EXTJS的itemselector插件,EXTJS关闭页面的方法,EXTJS grid面板不能单选

失礼了~本人EXTJS初学者,试着写了点东西,·1其中用到了itemselector插件,这个插件我把左边的数据移动到右边之后,不显示任何东西,但是有是有记录的,就像是写... 失礼了~本人EXTJS初学者,试着写了点东西,
·1 其中用到了itemselector插件,这个插件我把左边的数据移动到右边之后,不显示任何东西,但是有是有记录的,就像是写错了fields一样,只显示一个白条,这是求助点一;还有就是怎么能动态的给这个插件加载数据,左边和右边分别是两个不同的list的样子;
·2 关于EXTJS中关闭页面的方法,我记得在jsp中是用window。close()方法可以关闭当前页面的,但是在EXTJS中似乎不管用了,希望大侠们能提供个方法;
·3 关于grid面板,我在一个window中加载了三个面板(tabpanel),其中有两个是grid面板,这两个面板也都加载了sm,但是当我要选中一条记录的时候就会报错,提示:this.grid.stroe为空或不是对象;
另外再附加问一个:关于fields的解析问题……我请求服务器获得了json类型的数据,例如{items:{name:xxx,pwd:xxx,role:{name:xxx,pwd:xxx}}}这种样子……我如何在页面中写实role中的name……就是怎么写页面jsonstroe的fields……
EXTJS版本3.4,语言java
没有分值真是很抱歉,因为先前问的问题都没有结果,现在分数也没有这么多……我已经挂出了全部剩余分数了……希望大家帮助一下……
展开
 我来答
servletxf
2012-08-14 · 超过23用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:64.3万
展开全部
1、itemselector不好意思,没用过
2、javascript能用的话,在extjs中也是可以用的。那一定是你别的地方的问题。
3、你的2个grid对应的store是否是同一个,store中的url是否正确。你的json可能有点问题。
一般来说是:{totally:200,result:[{id:1,name:'123'},{id:2,name:'456'}]}
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url : testServlet,timeout:900000}),
reader: new Ext.data.JsonReader({
totalProperty: 'totalCount',
root: 'result'
},transRecord),
remoteSort: true
});
更多追问追答
追问
……谢谢你回答……javascript确实能用,在extjs中也确实执行了,但是没有结果,假设是这样我设置一个function(){alert(1);window.close();;alert(2);}两条语句都会弹出来,但是页面没有关闭;这个我也不清楚怎么个情况了……第三个,store这两个store不是同一个store,是两个请求获取的两个不同的store;……希望大神继续帮助下啊……
追答
1、alert与Ext,Msg.alert('','');性质是不一样的。具体怎样,请自己查资料。
如果有需要其实可以使用
Ext.Msg.confirm('提示','要关闭吗?',
function (button){ if (button == 'yes'){
window.close();

}
2、store请求不一样这才合乎常理。那么返回的json字符串需要record进行解析。这个你参考
extjs中的examples里面都有
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
百度网友13eda02
2012-08-07 · TA获得超过778个赞
知道小有建树答主
回答量:1048
采纳率:77%
帮助的人:413万
展开全部
1、也有可能fields映射不对,看这个插件有没有reload数据的方法,或者给出插件地址
2、window.close();是可以关闭当前页面的,但是要注意你的当前页面是不是IFRAME帧里
尝试top.window.close();,或者检查拼写有没有错误,前面执行句alert(2012);来确认
3、是类似这样指定的吗sm:newExt.grid.RowSelectionModel({singleSelect:true}),那个错误像是监听函数里
另外Ext.data.JsonReader你不指定类型它会把role:{name:xxx,pwd:xxx}冒号后的值当做字符串吧,你可能需要通过grid的Ext.grid.ColumnModel中的renderer属性自定义渲染函数类解析Ext.decode()转为对象再取里面的属性值。
追问
……首先谢谢你的回答……第一个呢,这个我也估计是fields映射不对,但是我不知道该怎么写,我就是想获取一个实例中的另一个实例的属性……第二个,抱歉,昨天看错了,这个确实如果用TOP就有效果了……第三个,和你列出来的很像,但是没有参数,是个空的rowselectionmode……你最后说的那个很有帮助,但是……我不会啊……能在详细点么……不好意思,刚学……
追答
解一:
这是ColumnModel中某个Column定义时指定renderer函数,
这里是匿名函数、你可以参照参数定义个显式函数:
{
header:'Company Name',
dataIndex:'company',
renderer:function(value, metaData, record, rowIndex, colIndex, store){
if(value =='whatever'){metaData.css ='name-of-css-vip';}
return value;
}
}

解二:
关于xtype : 'itemselector'组建,你起码要把下面三个属性及store的配置贴出来才能判断:
store :stLeft,
valueField : 'value',
displayField : 'text'
store :stRight,
valueField : 'value',
displayField : 'text'

解三:
字符串值转成对象:
var str='{name:"nameX",pwd:"pwdX",role:{name:"nameR",pwd:"pwdR"}}';
var obj=Ext.decode(str);
alert(obj.name);
alert(obj.role.name);
你把第一层映射到record后,某个列如role会映射到'{name:"nameR",pwd:"pwdR"}'这个JSON序列,你再转成对象就可以按需要取值了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式