2011-07-08 27 views
5

Tôi biết rằng việc chỉnh sửa ô bằng datepicker có thể do tham chiếu herehere. Tuy nhiên, khi tôi bấm vào ô, không có datepicker hiển thị. Dưới đây là mục nhập colModel cho cột được đề cập. Tôi có giao diện người dùng datepicker.thực hiện chỉnh sửa tế bào jqgrid datepicker

Trong các ví dụ khác, dataInit không được bao quanh bởi dấu ngoặc kép. Đó là trong mã của tôi bởi vì toàn bộ colModel được tạo động bởi PHP trong một yêu cầu AJAX. Tôi xây dựng nó như là một mảng, sau đó json_encode nó được chuyển trở lại jqGrid. Json_encode của PHP tạo JSON hợp lệ, vì vậy tất cả các khóa được trích dẫn dưới dạng chuỗi. Tôi có phải loại bỏ các dấu ngoặc kép để jqGrid hoạt động bình thường không? Nếu vậy, làm thế nào?

Mục colModel cho một cột date:

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

Dưới đây là cấu trúc của các yêu cầu 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', 
    }); 
    } 
    }); 
}); 

Ngoài ra, tôi đang sử dụng jqGrid 4.0.0

+0

Câu trả lời Oleg [tại đây] (http://stackoverflow.com/questions/5171617/how-to-add-custom-formatter-for-jqgrid-with-dynamic-column-binding/5175127#5175127) – Andrea

+0

Điều này xuất hiện là một bản sao của câu hỏi trên (tên thuộc tính đã thay đổi, nhưng vấn đề là như nhau: bạn không thể chuyển javascript *** code *** qua JSON, nó cho dữ liệu. Bạn phải làm một số xử lý ở đâu đó dọc theo đó đường dẫn để lấy dữ liệu chuỗi-ified trở lại thành mã. – TML

Trả lời

0

tôi có cùng một vấn đề với việc chuyển một hàm với json_encode của PHP, điều này là không thể nhưng nếu bạn đang sử dụng Zend Framework, bạn có thể sử dụng hàm Zend_Json_Expr ('function ...') để sử dụng hàm và sau đó mã hóa với Zend_Js trên :: mã hóa ($ var).

Tuy nhiên, điều này sẽ không giải quyết được sự cố khiến sự kiện sẽ không được kích hoạt nếu bạn chèn nó sau đó thông qua AJAX.

Bạn có thể xem Pike_Grid để xem cách thực hiện tại đó.

Các vấn đề liên quan