jqGrid с пользовательскими цветами ячейки

Angular выполняет обнаружение изменений в ответ на различные триггеры. События DOM, ajax-запросы и таймеры / наблюдаемые вызовут обнаружение изменений Angular.

Событие окна resize является примером события DOM, которое инициирует обнаружение изменений.

Насколько я знаю, обнаружение изменений Angular не автоматически вызывается ResizeObserver. Поэтому вам нужно явно указать Angular для обнаружения изменений, используя ChangeDetectorRef.detectChanges() :

constructor(private changeDetector: ChangeDetectorRef) {}

ngAfterViewInit() {
  const obs = new ResizeObserver(entries => {
    // Perform updates in response to resize

    // Then tell Angular to detect changes
    this.changeDetector.detectChanges();
  });
  obs.observe(this.resizeDiv.nativeElement);
}

Вот пример StackBlitz .

Если вы заботитесь только об изменениях размеров области просмотра, нет необходимости использовать ResizeObserver. Событие window resize будет отлично работать во всех браузерах.

6
задан Anurag Uniyal 27 February 2010 в 02:40
поделиться

2 ответа

Да, вы можете сделать это. Напишите пользовательский форматер . Это просто функция, на которую вы передаете ссылку в своей colModel. Вы получаете ссылку на последний селектор ячеек в функции, поэтому все, что вы можете сделать с jQuery, вы можете сделать в форматере. В том числе изменить цвет / стиль.

8
ответ дан 10 December 2019 в 02:53
поделиться

Я бы установил красный цвет фона, если ячейка имеет значение xxx, иначе зеленый фон, если значение yyy.

Я написал этот код:

.....
colModel:[
    {name:'id',index:'id', width:15,hidden:true, align:"center"},
    {name:'title',index:'title', width:150, align:"center"},
    {name:'start',index:'start', width:350, align:"center", sorttype:"date"},
    {name:'fine',index:'fine', width:350, align:"center", sorttype:"date"},
    {name:'completed',index:'completed', width:120, align:"center",formatter:infractionInFormatter},        
    ],
.....

И эта функция похожа на ваш пример:

function infractionInFormatter(el, cellval, opts)
        {
            .....
        }

Как мне ее установить?

Большое спасибо.

-1
ответ дан 10 December 2019 в 02:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: