JQuery EasyUI Treegrid не может правильно отображать данные объекта json с помощью средства форматирования

У меня есть jsondata что-то вроде:

"rows":[                                                          
        {"code":"001","name":"Name 1","addr":"Address 11","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"002","name":"Name 2","addr":"Address 13","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"003","name":"Name 3","addr":"Address 87","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"004","name":"Name 4","addr":"Address 63","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"005","name":"Name 5","addr":"Address 45","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"006","name":"Name 6","addr":"Address 16","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"007","name":"Name 7","addr":"Address 27","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"008","name":"Name 8","addr":"Address 81","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"009","name":"Name 9","addr":"Address 69","col4":{"data":"col4 data","value":"col4 value"}},
        {"code":"010","name":"Name 10","addr":"Address 78","col4":{"data":"col4 data","value":"col4 value"}}
]

Предназначен для отображения данных и значения col4 в двух разных столбцах. Следовательно, добавлено следующее в определение таблицы treegrid.

{field:'col4',title:'Col41 data',width:150,rowspan:2,formatter:function (value,row,index){return value["data"];}},
{field:'col4',title:'Col41 value',width:150,rowspan:2,formatter:function (value,row,index){return value["value"];}}

Ожидалось, что это сработает, но модуль форматирования видит только поле данных. Второй модуль форматирования никогда не работает для столбца.

Кто-нибудь знает какой-либо доступный обходной путь?


person RahulK    schedule 05.04.2013    source источник


Ответы (1)


вы должны изменить имя поля... jesasyui сопоставляет имя поля с отправленным json и добавляет соответствующее значение... поэтому, поскольку имя вашего поля одинаково для обоих столбцов, оно добавляет соответствующий объект...

попробуй это

{field:'col4_data',title:'Col41 data',width:150,rowspan:2,formatter:function (value,row,index){return row.col4["data"];}},
{field:'col4_value',title:'Col41 value',width:150,rowspan:2,formatter:function (value,row,index){return row.col4["value"];}}
person bipen    schedule 05.04.2013
comment
Итак, имя поля является основной причиной. Спасибо за это. Что касается кода, он не работает и выдает ошибку, что значение не определено? - person RahulK; 05.04.2013
comment
почему бы вам не изменить сам json перед его кодированием... ??.. так что вы можете назвать его field:'col4_data' и поле col4_value.... можете ли вы узнать, кому вы отправляете json ?? - person bipen; 05.04.2013
comment
Что касается значения ошибки, я использовал row.col4, и это решило мою проблему.... Спасибо за ответ. - person RahulK; 05.04.2013
comment
добро пожаловать ... вы можете принять это как ответ .. если этот пост помог вам .. :) ).. в любом случае рад, что это помогло ... счастливого кодирования - person bipen; 05.04.2013