jqgrid: метод setCell › как установить класс четвертого параметра?

как установить четвертый параметр метода setCell: параметр class

$("#myGrid").jqGrid('setCell',rowid,'label', **class** ,{color:'black', weightfont:'bold'});

Спасибо !


person Qualliarys    schedule 20.05.2010    source источник


Ответы (3)


Вы можете просто определить в своем файле CSS новый класс, например

.MyCell {
  color:'black';
  weightfont:'bold'
}

а затем использовать

$("#myGrid").jqGrid('setCell',rowid,'label', '', 'MyCell');

Мне кажется, что следующее также будет работать

$("#myGrid").jqGrid('setCell',rowid,'label', '', {color:'black', weightfont:'bold'});

person Oleg    schedule 20.05.2010
comment
Спасибо за ваш быстрый ответ! да, эта возможность работает: $(#myGrid).jqGrid('setCell',rowid,'label', '', {color:'black', weightfont:'bold'}); но, кроме того, я хотел бы применить к своей ячейке класс пользовательского интерфейса jquery, например класс .ui-state-default. Вы можете найти определение метода setCell по адресу secondpersonplural.ca/jqgriddocs/_2eb0fi5wo.htm# Но что это значит для параметра класса? - person Qualliarys; 20.05.2010
comment
вы можете вызвать $("#myGrid").jqGrid('setCell',rowid,'label', '', 'ui-state-default'); в следующей строке, например, после `$(#myGrid).jqGrid('setCell',rowid,'label', '', {color:'black', weightfont:'bold'});. jqGrid just call jQuery. addClass` для соответствующего <td> элемента сетки и с соответствующими параметрами. Таким образом, вы можете иметь несколько операций добавления. Не забудьте сделать это внутри loadComplete или другого обработчика событий, такого как onSelectRow. Тогда вы можете быть уверены, что сетка полностью заполнена на данный момент. - person Oleg; 20.05.2010

Спасибо большое, теперь работает!

Я просто написал:

afterInsertRow: function(rowid){    
  $("#myGrid").jqGrid('setCell',rowid,'label','',{color:'gray', weightfont:'bold'});
  $("#myGrid").jqGrid('setCell',rowid,'label', '', 'ui-state-default');
},
person Qualliarys    schedule 20.05.2010
comment
Я рекомендую всегда использовать gridview: true, особенно если вы позволяете пользователю отображать большое количество строк одновременно. Тогда все строки (<tr> с полным содержимым) будут сначала собраны в один массив строк, а затем все добавлены с учетом одной операции Array.join. Если вы используете afterInsertRow, вы нарушаете использование Array.join внутри реализации addXmlData или addJSONData. Поэтому я считаю, что лучше вызывать jqGrid('setCell',...); один раз внутри обработчика событий loadComplete. Тогда у вас будут те же результаты, но все будет работать быстрее. - person Oleg; 20.05.2010
comment
Если вы хотите переопределить класс всех строк, вы можете переопределить .ui-jqgrid tr.jqgrow td в своем css. Если вы измените значения отступов, может потребоваться переопределить параметр cellLayout jqGrid (см. trirand.com/blog/?page_id=393/feature-request/celllayout/) - person Oleg; 20.05.2010

Я использовал код ниже

$('#'+gridTable).jqGrid('setLabel', "abc", "new Label");

работает отлично

Но если я попытаюсь изменить его снова, как

$('#'+gridTable).jqGrid('setLabel', "new Label", "new Label123");

Приведенный выше код не дает ошибки, но значение метки не меняется.

person Manish    schedule 10.09.2012