jsgrid: добавить загрузку страницы к кнопке редактирования?

Я хотел бы изменить встроенную функциональность кнопки редактирования jsgrid из встроенного редактора на открытие другой страницы для редактирования. Я не совсем уверен, как это сделать. Любые идеи, как я могу добиться замены кнопки редактирования по умолчанию для загрузки страницы? Это вообще возможно? Пока что у меня есть:

код:

<script>
    $( document ).ready(function() {
      $("#jsGrid").jsGrid({
           height: "398px",
           width: "100%",
           inserting: true,
           editing: true,
           sorting: true,
           paging: true,
           autoload: true,
           pageSize: 10,
           pageButtonCount: 5,
           deleteConfirm: "Do you really want to delete your job listing?",
           controller: {
               loadData: function(filter) {
                   return $.ajax({
                       type: "GET",
                       url: "<?php echo site_url('/job/getjobs/'.$this->session->employer_id); ?>",
                       data: filter
                   });
               },
               insertItem: function(item) {
                   return $.ajax({
                       type: "POST",
                       url: "/clients/",
                       data: item
                   });
               },
               updateItem: function(item) {
                   return $.ajax({
                       type: "PUT",
                       url: "/clients/",
                       data: item
                   });
               },
               deleteItem: function(item) {
                   return $.ajax({
                       type: "DELETE",
                       url: "/clients/",
                       data: item
                   });
               }
           },
           fields: [
               { name: "title", title: "Title", type: "text", width: 100 },
               { name: "created_on", title: "Created On", type: "text", width: 100 },
               { name: "salary", title: "Salary", type: "text", width: 100 },
               { name: "is_active", type: "text", title: "Is Active", width: 100 },
               { type: "control" }
           ]
       });
    });

</script>

1 ответ

Решение

Я использую всплывающее окно, диалоговое окно jQuery, но вы также можете использовать что-то еще эквивалентное, например, диалог начальной загрузки.

Я привязал правку к щелчку строки, и мой код выглядит примерно так:

$("#jsGrid").jsGrid({
    ...
    rowClick: function(args) {
        showDialog(args.item);
    },
    ...
 );  

showDialog это функция для запуска всплывающего окна. Выбранная строка становится доступной в args.item,

Затем в showDialog После сохранения пользователь использует следующую функцию, чтобы вызвать метод обновления jsGrid, который также обновит затронутую строку в сетке:

$("#jsGrid").jsGrid("updateItem", updatedItem);

Надеюсь это поможет.

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