ext.apply(Ext.apply)
一、怎么在ext.json中拿到extappid
首先,回到第一篇。使用Ext.apply为Ext对象添加了一些属性,
Ext.apply(Ext,{
...
USE_NATIVE_JSON: false,
...
});
USE_NATIVE_JSON即为其中之一,可以使用它来设置是否开启浏览器原始的JSON(即JSON.parse,JSON.stringify)来解析或反解析。这是ECMA5中加入的,在字符串转换成JSON的三种方式中已经提到。
该值初始为false,即不开启。设置为true则开启如
Ext.USE_NATIVE_JSON= true;
Ext.util.JSON内部定义了一些私有方法,对外公开的有三个方法
encodeDate将日期对象转成字符串
encode将JS对象转成字符串
decode将字符串转成JS对象
此外,encode和decode分别赋值给了Ext.encode和Ext.decode。如
Ext.encode= Ext.util.JSON.encode;
Ext.decode= Ext.util.JSON.decode;
即开发时可以使用更简短的Ext.encode和Ext.decode而非冗长的Ext.util.JSON.encode和Ext.util.JSON.decode。
二、如何Ext.data.record.create设置id
Ext.onReady(function(){
var bookFileds=["id","book_name","author","type_id","price","brief"];
var bookStore= new Ext.data.Store({//创建数据集
autoLoad:true,//自动加载
reader:new Ext.data.XmlReader({//创建xml数据解析器
totalRecords:"results",
record:"json",
id:"id"
},
Ext.data.Record.create([
,
,
,
,
,
])
),
proxy:new Ext.data.HttpProxy({//创建HttpPorxy代理
url:'t.json'
}),
reader:new Ext.data.JsonReader({
fields:bookFileds,
root:"data",
id:"id",
totalProperty:"totalCount"
})
})
//创建工具栏组建
var toolbar= new Ext.Toolbar([
,
,
]);
//创建Gird组建
var cb= new Ext.grid.CheckboxSelectionModel()//创建选择模式对象
var bookGrid= new Ext.grid.GridPanel({//创建表格面板组件
applyTo:'grid-div',
height:200,
frame:true,//渲染表格面板
tbar:toolbar,//设置顶端工具栏
store:bookStore,//设置表格对应的数据集
stripeRows:true,//显示斑马线
autoScroll:true,//当数据超出表格高度是,自动显示滚动条
viewConfig:{
autoFill:true//自动填充表格
},
sm:cb,//设置表格的选择模式
columns:[
new Ext.grid.RowNumberer({
header:'行号',
width:40
}),
cb,//在表中显示复选框
,
,
,
,
]
})
bookStore.load();
});
t.json
{
totalCount: 1,
data: [{
"id": 1,
"author":"liuxing",
"book_name":"JAVA世界之窗",
"brief":"java",
"type_id": 1
}]
}