Пользовательская кнопка Jqgrid - PullRequest
1 голос
/ 03 сентября 2011

мне нужно иметь кнопку отправки в моем jqgrid.Так что это означает, что я должен вызывать действие с моего контроллера, когда я нажимаю на кнопку.Я получил код для моей кнопки удаления.но я не могу понять, как отправить дополнительные данные с моим действием:

gridComplete: function () {
                  var gr = jQuery('#list'); gr.setGridHeight("auto", true);
                  var ids = jQuery("#list").jqGrid('getDataIDs');
                  for (var i = 0; i < ids.length; i++) {
                      var cl = ids[i];
                      be = "<a href='#' style='height:25px;width:120px;' type='button' value='Slet' onclick=\"jQuery('#list').jqGrid('" + cl + "', @Url.Action("Action")); return false;\">Send</>";
                      jQuery("#list").jqGrid('setRowData', ids[i], { act: be });
                  }
              },

1 Ответ

1 голос
/ 08 февраля 2015

(Ответ на вопрос редактируется и комментируется. Преобразован в вики-ответ сообщества. См. Какое действие подходит для добавления ответа на вопрос к самому вопросу? )

ОП написал:

Решил этот вопрос с помощью запроса ajax

var Send = function (rowId) {
    $.ajax({
        mtype: "POST",
        url: '@Url.Action("Action")',
        data: { actionparameter: rowId },
        async: false,
        cache: false
    });
  };

         gridComplete: function () {
            var gr = jQuery('#list'); gr.setGridHeight("auto", true);
            var ids = jQuery("#list").jqGrid('getDataIDs');
            for (var i = 0; i < ids.length; i++) {
                var cl = ids[i];
                var be = "<a href='#' value='Slet' onclick=\Send(" +cl + "); return false;\">Send</>";
                jQuery("#list").jqGrid('setRowData', ids[i], { act: be });
            }
        },

@ Олег написал:

Вы должны только

  1. удалить async: false, который не нужен.
  2. удалить cache: false, поскольку вы используете "POST", который не кэшируется.
  3. заменить mtype: "POST" для ввода: "POST"
  4. replace '= \ Send (' to '= \ "Send ('
  5. В настоящее время вы отправляете только rowId на сервер и никаких данных.

    Вы не опубликовали всю сетку, поэтому я не знаю, выполняли ли вы локальную сетку, и нужно ли отправлять измененные данные дополнительно. Если вы посмотрите документацию $.ajax, вы найдете тип параметра, которыйзначение по умолчанию - «GET». Если вы напишите mtype: "POST", оно будет проигнорировано как blabla: "HaHa". Таким образом, запрос HTTP GET будет отправлен туда, где cache: false может иметьсмысл, но «POST» может быть не разрешен в действии.То, что вы действительно хотите, было type: "POST".Кстати, я рекомендую вам включать в свой вопрос лучше слишком много кода, как мало.Многие вещи могут быть более понятными, и все сэкономят там время

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...