ExtJs问题,GridPanel能否遍历行?如果能的话,最好提供一个小例子。

解决方案 »

  1.   

    干吗遍历行?数据都在你的store里(或者说reader里),遍历这个就是了.
      

  2.   

     不,一定要遍历Grid,因为要根据单元格中的数据来进行动态的编程,比如某单元格的数据为0,那么该单元格的背景色是白色,1就变成蓝色,2就变成红色。
      

  3.   

    怎么得到GridPanel所有行的值?就是遍历GridPanel的所有行.
    救救啊~~~
      

  4.   

    当然可以.GridPanel绑定的store有个getCount()的方法,得到当前页数据行数.绑定的GridView有个getRow()方法,具体查查api
    类似以下var mygrid = Ext.GridPanel({....});
    var total = mygrid.getStrore().getCount();//数据行数
    for(var i=0;i<total;i++){
      alert(grid.getView().getRow(i))//每行对象
    }
      

  5.   

    每行的数据集类似这样
    ===============================
    var mygrid = Ext.GridPanel({....});
    var total = mygrid.getStrore().getCount();//数据行数
    for(var i=0;i<total;i++){
      alert(mygrid.getStrore().getAt(i))//每行records对象
      //alert(mygrid.getStrore().getAt(i).data['abc'])//对应每行dataIndex为abc的值
    }
      

  6.   

    反正你要遍历单元格的内容,直接帮你把代码实现了.var grid = .....;
    var store = grid.store;
    var rowCount = store.getCount(); //记录数
    var cm = grid.getColumnModel();
    var colCount = cm.getColumnCount(); //列数
    var view = grid.getView();
    for(i=0;i<rowCount;i++){
      for(j=0;j<colCount;j++){
        var cell = view.getCell(i,j);
        alert(cell.innerHTML);//第i行j列的数据
      }
    }
      

  7.   

    楼上的兄弟,救救啊,我现在用js能取到,
    但取得的数据要返回.cs后台文件中,我不知道怎么传。用个隐藏控件也不行,页面刷新一次就空了。怎么办啊?
      

  8.   

    怎么从从gripanel取数据 传到 form里面呢
      

  9.   

    你这不就是为了获取到那一行的某个值  根据每个不同的值来设置不同背景色 或者做别的处理吗?你大可以再你的grid生成的时候每个列加个事件renderDescn
    例如 Grid里的某列
    {
    header:"名称",
    tooltip:"名称",
    dataIndex:"custname",
            sortable:true,
            renderer:renderDescn 
    }function renderDescn(value, cellmeta, record, rowIndex, columnIndex, store){
            if(record.data["字段"] ==0)
                return "<font color='red'>"+value+"</font>";
               else
                return value;
    }
      

  10.   

    11楼说的正确,定义renderer就可以了!
      

  11.   

    这位老兄看了LZ的问题了么 
    7楼甚好 拿到记录了 再拿某单元格的值get(列id)或data[列id]下就哦了
      

  12.   

    这样试下看可以不......
    .x-grid-back-red {}{  
      background: #FF0000;
    }{
    header:"名称",
    tooltip:"名称",
    dataIndex:"custname",
    sortable:true,
    renderer : function(v,m){   
         m.css='x-grid-back-red';     
         return v;     
    }  
     
      

  13.   

    再通天json,用AJAX把數據post到後臺不就可以了嗎。
      

  14.   

    多少年前的帖子了,还在呢。
    不过正好,改下小错
     mygrid.getStrore().getCount()
    ----------------------------
    应该是getStore,多写了个r..
      

  15.   

    {
     header : "金额",
    width:50,
     dataIndex : "account",
     renderer:function(e,b,c)
     {
     if(e<-2000&&c.data.isbank!=1)
     {
     b.attr = "style='color:black;background:red'";
     }
     return e;
     }
     }
      

  16.   

    function signGridPanel(){
     
      var signRecordType = new Ext.data.Record.create([ //Record对象
      {name: "delflag",type: "string"},
      {name: "id",type: "string"}, 
      {name: "createtime" ,type: "date"},
      {name: "signtitle", type: "string"},
      {name: "signcontent" ,type: "string"}
      ]);
     
      var store_sign = new Ext.data.Store({ //Store对象
     
      proxy: new Ext.data.DWRProxy(SignAction.getAllSignListRange,true),
     
      reader: new Ext.data.ListRangeReader({
      totalProperty: 'totalSize',
    id: 'id'
      },signRecordType),
     
      remoteSort: true
      });
     
      var sm_sign = new Ext.grid.CheckboxSelectionModel(); //复选框
     
      var colM_sign = new Ext.grid.ColumnModel([ //定义列
      new Ext.grid.RowNumberer(),
      sm_sign, 
      {header: '标题',dataIndex: 'signtitle',align: 'center',width: 80,sortable: true,renderer: checkTips}, 
      {header: '创建时间',dataIndex: 'createtime',align: 'center',width: 80,sortable: true,renderer: checkTipsTime}, 
    {header:'操作',dataIndex:'id',align:'center',width:80,sortable:true,renderer:function(value){
          return "<a href=\"#\" onclick=\"javascript:detailSignById('"+value+"');\"><img src='../themes/default/edit2.gif' width=\"15\" height=\"16\" alt=\"查看\"/></a>"
          }} 
      ]);
     
      var grid_sign = new Ext.grid.GridPanel({ //表格面板
      id: 'grid_sign',
      height: 200,
      width: 600,
      loadMask: true,
      sm: sm_sign,
      cm: colM_sign,
      store: store_sign,
      viewConfig: {
      forceFit: true
      },
      bbar: new Ext.PagingToolbar({
      pageSize: 20, 
      store: store_sign,
      displayInfo: true,
      displayMsg:'第{0}到{1}条数据 共 {2}条',
      emptyMsg:'没有数据'
      })
      });
     
      store_sign.on("beforeload",function() {
      store_sign.removeAll(); //清空原来的数据 
     
      var title = Ext.getCmp("querySign_simpleForm_signtitle").getValue(); 
     
      store_sign.baseParams = {
      delflag: '0',
      title: title
      };
      });
       
      return grid_sign;
     }
    你要的就是每行数据显示到gridpanel里面是吧?