首页新闻找找看学习计划

关于easyui datagrid 多个列都指定同一字段的问题

0
悬赏园豆:30 [已解决问题] 解决于 2013-05-31 16:32

如上图,这几列字段的filed都是指定的同一个, field: 'Position'

json数据:  "Position":"非机动车道,其它" 也可以是 "Position":"机动车道"

然后我想是用formatter来控制单元格的显示,如果value值能匹配到就返回1,否则返回空

var pattern = /^机动车道$/;
var data = value.split(",");
for (var i = 0; i < data.length; i++) {
if (pattern.test(data[i])) {
return 1;
break;
} else {
return "";
}
但是结果显示出来却不对,断点调试发现它每次只会运行第一个指定field: 'Position'的列,其他列好像不管用,

高手来解答下啊!!

sam.c的主页 sam.c | 初学一级 | 园豆:148
提问于:2013-05-31 11:02
< >
分享
最佳答案
0

formatter: function(value,row,index){

//用 row.Position 来获取值, 不要用value  你试试

}

收获园豆:30
白眉大虾 | 菜鸟二级 |园豆:231 | 2013-05-31 11:12

不行

sam.c | 园豆:148 (初学一级) | 2013-05-31 12:19

@N。: 你得设置下datagrid的 column, 保证每个field 都是不一样的 比如  field: 'Position',  field: 'Position1', field: 'Position2', field: 'Position3'  ,这个自己定义就行

白眉大虾 | 园豆:231 (菜鸟二级) | 2013-05-31 12:39

@待来年山花烂漫之时: 问题是那么做的话position就太多了,有三四十个,很麻烦。客户提的需求太二了,没办法。

sam.c | 园豆:148 (初学一级) | 2013-05-31 14:31

@N。: 刚好有时间写了个例子 你看看

<table class="easyui-datagrid" id="dg" style="width:400px;height:250px">  </table> 
<script type="text/javascript">
    var cm = [[
        {
            field: 'Position1', title: '机动车道', width: 100,
            formatter: function (value, row, index) {
                var arr = row.Position.split(',');
                for (var i = 0; i < arr.length; i++) {
                    if (arr[i] == "机动车道") {
                        return 1;
                    }
                }
                return 0;
            }
        },
        {
            field: 'Position2', title: '非机动车道', width: 100,
            formatter: function (value, row, index) {
                var arr = row.Position.split(',');
                for (var i = 0; i < arr.length; i++) {
                    if (arr[i] == "非机动车道") {
                        return 1;
                    }
                }
                return 0;
            }
        },
        {
            field: 'Position3', title: '混合车道', width: 100,
            formatter: function (value, row, index) {
                var arr = row.Position.split(',');
                for (var i = 0; i < arr.length; i++) {
                    if (arr[i] == "混合车道") {
                        return 1;
                    }
                }
                return 0;
            }
        }
    ]];
    var store = [{ "Position": "非机动车道,非机动车" }, { "Position": "机动车道,混合车道" }];
    $('#dg').datagrid({
        columns: cm,
        url: 'datagrid_data.json', fitColumns: true, singleSelect: true,data:store
    });
</script>

白眉大虾 | 园豆:231 (菜鸟二级) | 2013-05-31 14:49

@待来年山花烂漫之时: 传递的json  只要一个position就可以了?

field不用跟position完全匹配吗?

sam.c | 园豆:148 (初学一级) | 2013-05-31 16:14

@N。: 是的. 灵活控制

白眉大虾 | 园豆:231 (菜鸟二级) | 2013-05-31 16:26

@待来年山花烂漫之时: 太感谢你了,真的!

sam.c | 园豆:148 (初学一级) | 2013-05-31 16:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册