propertygrid在其属性面板中加载json对象带函数的属性或者事件

如何在propertygrid的url加载json对象带函数的属性或者事件?

由于propertygrid的url加载json对象时,会将里面的属性或者事件所对应的函数解析成字符串,所以这需要处理该函数字符串为函数或者事件集合。

代码如下:

xxx.json:

{"name":"<span title='method'>请求方式</span>","proname":"method","value":"post","group":"easyui属性",
"editor":{"type":"combobox",
"options":{"data":[{"value":"post","text":"post"},{"value":"get","text":"get"}],
"valueField":"value","textField":"text",
"keyHandler":"{up: function(){},down: function(){},enter: function(){var falg='method';comboboxClass.getInput(this,falg);},query: function(q){}}"
}}},

xxx.js:

//加载属性面板
$('#component_pg').propertygrid({  
url: "components/"+$(this).attr("component_id")+".json",  
scrollbarSize: 0,
showGroup:true,
groupFormatter:function(group,rows){
if(group=="easyui属性"){
for(var i=0;i<rows.length;i++){
if(rows[i].editor.type&&rows[i].editor.type=="combobox"){
if(rows[i].editor.options.keyHandler){
var test=rows[i].editor.options.keyHandler;
var json = eval('(' + test + ')');
rows[i].editor.options.keyHandler=json;
/*var f2=(new Function("return "+test))();
rows[i].editor.options.keyHandler=f2;*/
 }
  }
       }
    return "easyui属性";
}
else if(group=="html属性"){
return "html属性";
}
else if(group=="样式属性"){
return "样式属性";
}
}
   });  
var comboboxClass = (function(){
return {
getInput:function(obj,falg){
var q=$("span[title='"+falg+"']").parent().parent().next().children().find('input.textbox-text').val();
if(q!=''){
var datas = $(obj).combobox('options').data;
var addcloum={text:q,value:q};
datas.push(addcloum);
$(obj).combobox('loadData',datas);
$(obj).combobox('setValue',q);
}
}
};
}());


最后运行图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

txp1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值