xiaofen3115 发表于 2013-2-7 15:12:02

ext学习笔记1

一。extjs例子。
1。新建一个helloworld目录,helloworld目录下新建一个helloworld.html文件,将下列内容复制进index.html文件中
<link rel="stylesheet" type="text/css" href="ext/css/ext-all.css" />
      <script type="text/javascript" src="ext/ext-base.js"></script>
          <script type="text/javascript" src="ext/ext-all.js"></script>
       <script type="text/javascript" src="ext/examples.js"></script>
<link rel="stylesheet" type="text/css" href="ext/css/examples.css" />
<script>
Ext.onReady(function(){
   Ext.MessageBox.alert('helloworld', 'Hello World.');
});
</script>
2。双击helloworld.html打开页面,效果如下:
 
2。Grid例子:
◆导入文件如上略。
◆<script>
Ext.onReady(function(){<span style="" />
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());<span style="" />
 
<span style="font-size: small;">//建立一个三列的表格
var cm = new Ext.grid.ColumnModel([<span style="" />
{header:'编号',dataIndex:'id' sortable:true},//sortable属性是排序
<span style="font-size: small;">{header:'性别',dataIndex:'sex',renderer: renderSex },
    {header:'名称',dataIndex:'name'},<span style="" />
    {header:'描述',dataIndex:'descn'}<span style="" />
]);
//定义数据<span style="" />
var data = [    ['1','male','name1','descn1'],    ['2','female','name2','descn2'],    ['3','male','name3','descn3'],    ['4','female','name4','descn4'], ['5','male','name5','descn5']];                            <span style="font-size: small;">//转化
var ds = new Ext.data.Store({    proxy: new Ext.data.MemoryProxy(data),    reader: new Ext.data.ArrayReader({}, [        {name: 'id'},{name: 'sex'},        {name: 'name'},        {name: 'descn'}    ])});ds.load();或使用Ext.data.SimpleStore/** proxy告诉我们从哪里获得数据,reader告诉我们如何解析这个数据。
Ext.data.MemoryProxy,它是专门用来解析js变量的,Ext.data.ArrayReader专门用来解析数组。ds.load(),对数据进行初始化
用mapping来改变列序。如:
var ds = new Ext.data.Store({
    proxy: new Ext.data.MemoryProxy(data),
    reader: new Ext.data.ArrayReader({}, [
        {name: 'id', mapping: 1},
{name: 'sex' mapping:0 },        {name: 'name', mapping: 2},
        {name: 'descn', mapping: 3}
    ])
<span style="font-size: small;">});
*/
<span style="font-size: small;">//装配
var grid = new Ext.grid.GridPanel({
    el: 'grid',
    ds: ds,
    cm: cm
});
   grid.render();
/**
<span style="font-size: small;">Ext.grid.Grid的第一个参数是渲染的id,对应在html里应该有一个 <div id="grid"></div>的东西,这样grid才知道要把自己画到哪里。
*/
<span style="font-size: small;">//判断是男是女,然后配上颜色
function renderSex(value) {    if (value == 'male') {        return "<span style='color:red;font-weight:bold;'>红男</span>";    } else {        return "<span style='color:green;font-weight:bold;'>绿女</span>";    }} 
</script>
◆效果图如下:
<span style="" />
 
■ 使用renderer函数:
<span style="font-size: small;">1.自动行号
var cm = new Ext.grid.ColumnModel([    {header:'NO.',renderer:function(value, cellmeta, record, rowIndex){        return rowIndex + 1;}}//此为EXT1.X<span style="font-size: small;">new Ext.grid.RowNumberer(),//此为EXT2.X<span style="">…略]);<span style="">2. 显示颜色,链接,图片,按钮等   {header:'描述',renderer: renderDescn }function renderDescn(value, cellmeta, record, rowIndex, columnIndex, store) {    var str = "<input type='button' value='查看详细信息' onclick='alert(\"" +        "这个单元格的值是:" + value + "\\n" +        "这个单元格的配置是:{cellId:" + cellmeta.cellId + ",id:" + cellmeta.id + ",css:" + cellmeta.css + "}\\n" +        "这个单元格对应行的record是:" + record + ",一行的数据都在里边\\n" +        "这是第" + rowIndex + "行\\n" +        "这是第" + columnIndex + "列\\n" +        "这个表格对应的Ext.data.Store在这里:" + store + ",随便用吧。" +        "\")'>";    return str;}                 //效果图:<span style="" />
■全选checkbox: checkboxSelectionModelvar sm = new Ext.grid.CheckboxSelectionModel();//ext2.0l       sm身兼两职,使用的时候既要放到cm里,也要放到grid中。代码如下。
var cm = new Ext.grid.ColumnModel([
    new Ext.grid.RowNumberer(),
    sm,
    {header:'编号',dataIndex:'id'},
    {header:'性别',dataIndex:'sex'},
    {header:'名称',dataIndex:'name'},
    {header:'描述',dataIndex:'descn'}
]);
var grid = new Ext.grid.GridPanel({
    el: 'grid',
    ds: ds,
    cm: cm,
    sm: sm
});
/**   ext 1.x
{header:'<input type="checkbox" >',renderer:function(value, cellmeta, record, rowIndex){        return '<input type="checkbox" name="cb">';<span style="">    }},*/
l        效果图:   
 
<span style="font-size: small;">■ 分页工具条:
★ EXT1.X
       //获取grid下边放工具条工具的面板容器,
    var gridFoot = grid.getView().getFooterPanel(true);<span style="">//得工具条var paging = new Ext.PagingToolbar(gridFoot, ds, {    pageSize: 10,    displayInfo: true,    displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',    emptyMsg: '没有记录'});/**在gridFoot上显示,对ds也进行操作, displayInfo如果是false就不会显示提示信息。 displayMsg,只有在displayInfo:true的时候才有效,用来显示有数据的时候的提示信息.emptyMsg,要是没数据就显示这个
*/
★EXT2.0
var grid = new Ext.grid.GridPanel({
    el: 'grid',    ds: ds,    cm: cm,    bbar: new Ext.PagingToolbar({        pageSize: 10,        store: ds,        displayInfo: true,        displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',        emptyMsg: "没有记录"    })});ds.load();          
页: [1]
查看完整版本: ext学习笔记1