Показывать кнопки на iggrid в зависимости от условий для каждой строки

Я показываю igGrid на моем представлении, которые имеют возможность редактирования и удаления в каждой строке.

Я хочу показать кнопки для редактирования и удаления на основе записей. Исходя из данных столбца, некоторые строки будут иметь кнопки "Редактировать" и "Удалить", в то время как другие могут иметь только кнопку "Редактировать" или "Удалить". Я хочу управлять этими кнопками при отображении сетки, чтобы пользователь не видел ни одной кнопки, которая неприменима.

Подскажите, пожалуйста, как добиться этой функции в igGrid, и какое событие мне следует вызвать?

1 ответ

Решение

На самом деле есть несколько способов сделать это, но я думаю, что проще всего было бы использовать условные шаблоны (либо для строки, либо для конкретного столбца). Используя их, вы можете оценить значения других столбцов и на основе этих кнопок рендеринга. Я начал с образца шаблона столбца и добавил еще один столбец для редактирования:

$("#grid").igGrid({
    //...
    columns : [
        {
            headerText : "",
            key : "Delete",
            dataType : "string",
            width : "10%",
            unbound : true,
            template : "{{if ${MakeFlag} }}<input type='button' onclick='deleteRow(${ProductID})' value='Delete' class='delete-button'/>{{/if}}"
        }
        //...
    ]
});

jSFiddle: http://jsfiddle.net/damyanpetev/dVLrA/

Вы можете использовать этот шаблон для фактического столбца, который вы оцениваете, если его единственной целью является наличие флага для включения кнопок. Если вы хотите большей гибкости или использовать более одного последовательного условия, чтобы поместить обе кнопки в один столбец, вы можете использовать вместо этого jsRender, как показано здесь: http://jsfiddle.net/damyanpetev/85ZGS/

Примечание: установите "localSchemaTransform" в false, если ваши шаблоны должны оценивать значения, которые не будут привязаны к столбцам.

Ссылки на документацию для дальнейшего чтения:

Другие вопросы по тегам