внедрить средство выбора даты в ячейке jqgrid - PullRequest
5 голосов
/ 08 июля 2011

Я знаю, что редактирование ячеек с помощью DatePicker возможно из-за ссылок здесь и здесь . Однако, когда я нажимаю на ячейку, никакое средство выбора даты не появляется. Ниже приведена запись colModel для рассматриваемого столбца. У меня есть пользовательский интерфейс DatePicker.

В других примерах dataInit не заключен в кавычки. Это в моем коде, потому что весь colModel динамически создается PHP во время запроса AJAX. Я строю его как массив, затем json_encode, чтобы передать обратно в jqGrid. Json_encode PHP создает действительный JSON, поэтому все ключи заключаются в кавычки в виде строк. Должен ли я удалить кавычки, чтобы jqGrid работал правильно? Если да, то как?

Запись colModel для столбца даты:

{
 "editable":true,
 "name":"date",
 "index":"date",
 "sorttype":"date",
 "editrules":{"date":true},
 "editoptions":{
   "dataInit":"function(elem){
       setTimeout(function(){
          $(elem).datepicker();
       },100);
    }"
 }
}

Вот структура запроса ajax:

$(document).ready(function(){
  $.ajax({
   type: "GET",
   datatype: "json",
   success: function(result){
    try{
     //alert(result);
     result = jQuery.parseJSON(result);
    }catch(err){
     alert("error in success json " + err);
     return;
    }
    var colN = result.colNames;
    var colM = result.colModelList;
    var colD = result.colDataList;
    grid.jqGrid({
     datatype: 'local',
     colNames:colN,  //column names
     colModel:colM,  //column options
     data:colD,      //table data
     editurl: 'clientArray',//changes are not sent to server
     cellEdit: true,
     cellsubmit: 'clientArray',
    });
   }
  });
});

Также я использую jqGrid 4.0.0

1 Ответ

0 голосов
/ 31 августа 2011

У меня была такая же проблема с передачей функции с помощью json_encode PHP, что невозможно, но если вы используете Zend Framework, вы можете использовать Zend_Json_Expr ('function ...'), чтобы использовать функцию, а затем кодировать с помощью Zend_Json :: encode. ($ Var).

Тем не менее, это не решит проблему, потому что событие не будет запущено, если вы вставите его позже через AJAX.

Вы можете взглянуть на Pike_Grid , чтобы увидеть, как это там делается.

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