lingboy 2011-12-20 14:10:56 3279次浏览 3条回复 0 0 0

现在有一个已经填充完数据的GridView对象,我想在页面加载完成后,从GridView里面的每一行取出特定列的数据在JS中做其他的处理,这种情况应该怎么做?搜到了一些关于$.fn.yiiGridView.的方法的使用,但是没看到一个完整的例子,有人能给个例子吗?

多谢!

  • 回复于 2011-12-20 17:49 举报

    $.fn.yiiGridView.getColumn('grid-name',num);

  • 回复于 2011-12-20 21:39 举报

    多谢,已经解决了。参考了getColumn的源码,自己实现了一个JS函数,目的是可以通过

    的名字对列进行引用,而不是只能按照getColumn的参数给出一个列的顺序编号。代码如下。
    function retrieveColumnsValue() {
        var gridID = "myGrid";
        var settings = $.fn.yiiGridView.settings[gridID];
        var rows = '#' + gridID + ' .'+settings.tableClass+' > tbody > tr';
        $(rows).each(function(i){
            var lat = $(rows + ':eq('+ i +') > td[name="colName"]').html();
            console.log(lat);
        }
    }
    

    给列添加name属性的代码:

    array(
        'id'=>'colID',
        'class'=>'CDataColumn',
        'name'=>'field',
        'headerHtmlOptions'=>array('style'=>'display:none'),  //隐藏列头,在页面不显示
        'htmlOptions'=>array('name'=>'colName','style'=>'display:none'), //隐藏列,在页面不显示
    ),
    

    因为在列的设置里,使用ID最终只在GridView生成的table的th字段标示了ID,没办法用来获取到tr里的td内容,所以给列加了name属性。

    不知有没有方法能直接通过列id取值呢?如果不能,这个给列头加的id,通常是做什么用的呢?

  • 回复于 2011-12-21 10:20 举报

    得到td的内容吗??
    $.each($.fn.yiiGridView.getColumn('user-grid',2),function(i){alert($(this).html());});

您需要登录后才可以回复。登录 | 立即注册