六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

ext学习笔记1

[复制链接]

升级  56%

6

主题

6

主题

6

主题

童生

Rank: 1

积分
28
 楼主| 发表于 2013-2-7 15:12:02 | 显示全部楼层 |阅读模式
一。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打开页面,效果如下:

 

2Grid例子:

◆导入文件如上略。

◆<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();          
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表