У меня есть рабочая сетка (поля name и id):

<grid stuff>
    <kendo:grid-column width="80px">
        <kendo:grid-column-command>
            <kendo:grid-column-commandItem name="delete" text="Delete">
                <kendo:grid-column-commandItem-click>
                //Here I want to grab this worker id and redirect the user to the url workerDelete.html?Id
                </kendo:grid-column-commandItem-click>
            </kendo:grid-column-commandItem>
        </kendo:grid-column-command>
    </kendo:grid-column>
    <kendo:grid-column width="80px">
        <kendo:grid-column-command>
            <kendo:grid-column-commandItem name="update" text="Update">
                <kendo:grid-column-commandItem-click>
                    // here I want to grab this worker id and redirect the user to the url workerUpdate.html?Id
                </kendo:grid-column-commandItem-click>
            </kendo:grid-column-commandItem>
        </kendo:grid-column-command>
    </kendo:grid-column>
</grid stuff>  

Мне нужно знать, как захватывать данные из строки, когда пользователь нажимает пользовательскую кнопку, и менять представление, передавая данные по строке запроса. Я использую JSP и Spring.

Я пытался использовать следующий код, но он не работал:

<script>
    function deleteWorker() {
        var grid = $('#grid').data('kendoGrid');
        var row = grid.dataItem(grid.select());
        var id = row.id;
        window.location.href = "/workerDelete.html?"+cpf; 
    }
</script>
1
FilipeG 24 Янв 2013 в 19:57

2 ответа

Лучший ответ

Вы должны определить grid-column-command следующим образом:

<kendo:grid-column-command>
    <kendo:grid-column-commandItem name="update" text="Update" click="deleteWorker"/>
</kendo:grid-column-command>

И deleteWorker функционируют как:

    function deleteWorker(e) {
        var tr = $(e.currentTarget).closest("tr");
        var item = $("#grid").data("kendoGrid").dataItem(tr);
        // Do whatever else you need
    }

В этой функции item есть Сетка Кендо dataItem.

2
OnaBai 24 Янв 2013 в 18:36

Используйте столбец шаблона. Шаблон может быть кнопкой, украшенной классом k-button (так что он выглядит как кнопка кендо) и пользовательским классом, таким как класс deleteWorker .

Затем вы можете добавить обработчик события делегата при инициализации сетки, например:

$('#gridName').on('click','.deleteWorker',function(){
    var tr = $(this).closest('tr');
    var rowItem = grid.dataItem(tr);
    var id = rowItem.id;
    window.location.href = "/workerDelete.html?"+id;
})
0
Petur Subev 24 Янв 2013 в 17:25