如题,    <script type="text/javascript">    function showUrl(value)
    {
return "<a href=' http://www.baidu.com' target='_blank'>"+value+"</a>";
}
    
  Ext.onReady(function(){
  
  /*定义tabpanel*/
  var tabsDemo=new Ext.TabPanel({
      renderTo:Ext.getBody(),
      width:700,
      activeTab:0,//当前激活标签
      frame:true,
      items:[{
           contentEl:"tabOne",//标签页的页面元素id(加入你想显示的话)
           title:"测试1",
           closable:true//是否现实关闭按钮,默认为false
      },{
           contentEl:"grid",
           title:"测试2"
      }]
  });
/*定义数据存储器  获取数据*/
  var ds = new Ext.data.Store({
 proxy: new Ext.data.HttpProxy({url:"getData"}),
 reader: new Ext.data.JsonReader(
         {
         totalProperty:'totalProperty',
         root:'root'
         },
     [
         {name: "id"},
         {name: "name"},
         {name: "gender"},
         {name: "address"},
         {name: "email"},
         {name: "age"}
     ]
 ),
 remoteSort: true//排序时是否通过proxy获取新的数据
});
  
 
/*定义勾选框,若不需要,则可以不定义*/
  var sm = new Ext.grid.CheckboxSelectionModel();  /*定义列*/
 var cm=new Ext.grid.ColumnModel([    
                                    new Ext.grid.RowNumberer(),//增加自动编号,不需要可不必定义    
                                    sm,//勾选框,不需要可不必定义  
     //header是指列头显示的文本,dataIndex列对应 的记录集字段,sortable是指是否排序,renderer列的渲染函数(当指定到这列时,可以做一些额外的操作),format信息
                                {header: 'id', dataIndex: "id", sortable: true},
                                 {header: '姓名',  dataIndex: "name", sortable: true,renderer:showUrl},
                                 {header: '性别',  dataIndex: "gender", sortable: true},
                                 {header: '地址',  dataIndex: "address", sortable: true},
                                 {header: 'email',  dataIndex: "email", sortable: true},
                                 {header: '年龄', dataIndex: "age", sortable: true}                
         ]);  /*生成表格*/
 var grid1 = new Ext.grid.GridPanel({
 el:"grid",//相当于ApplyTo,将该组件应用到指定的对象
     ds: ds,
     cm:cm,
     width:700,
     //autoExpandColumn: 'id',
     sm:sm,
     loadMask: {msg:'正在加载数据……'}, //当页面加载数据时显示加载图片
     viewConfig: {    //是否强制调整列宽度,以致不出现水平滚动条
         forceFit:true    
     }, 
     height:210,
 title: '用户信息',
 bbar: new Ext.PagingToolbar({    
         pageSize: 5,    
         store: ds,    
         //cls: 'rightPage',给组件添加额外的样式
         displayInfo: true,    
         displayMsg: '第{0} 到 {1} 条数据 共{2}条',    
         emptyMsg: "没有数据" 
})
     });   
 grid1.render(); /*render的Id绑定到div的id,也可以在grid控件中直接使用renderTo属性,同样达到目的*/      
 ds.load({ params: { start: 0, limit: 5 } });
  }); 
</script> 
请大家帮忙看一看,谢谢啦,另外请教一个问题就是renderer函数,它可以传多个参数吗?

解决方案 »

  1.   

    可以,不过要用json的形式相对于一个参数比如{"name":"xx","id":"ss"}等
      

  2.   

    你好,能给个renderer传多个参数的例子吗?
    另外,我的那个“对象不支持此属性或方法”的错因何在呢?
      

  3.   


    你的那个对象不支持此属性或者方法 是在哪个地方提示错误? 建议你用火狐 火狐里firebug 可以定位到错误行。  renderer 这个还有在每个列里可以用 那样应该更加灵活 可以控制每列根据不同情况设置显示{header: '年龄', dataIndex: "age", sortable: true,renderer:renderDescn}
     然后再写这个函数  例如
    function renderDescn(value, cellmeta, record, rowIndex, columnIndex, store){
            if(record.data["ReleaseFlag"] ==0)
                return "<font color='red'>"+value+"</font>";
               else
                return value;
    }那这个record就是你这行数据的所有数据集  那你想要哪个参数都行
      

  4.   

    这个错误是在我点击排序时弹出的,而且我试了在firefox下正常的,不报错,
    那个renderer我想连接到一个url,然后想传几个参数,且参数不一定是我显示的dataindex,请问,这种情况该怎么办?