2009-08-07 36 views
6

Tôi đã có thể làm việc Bộ chọn ngày thành JQGrid khi chỉnh sửa nội tuyến, nhưng tôi không thể sử dụng nó trong cửa sổ thêm/chỉnh sửa. Có ai có hướng dẫn về làm thế nào để làm điều này hoặc một ví dụ tôi có thể nhìn vào?JQGrid/Ngày được chọn trong cửa sổ Thêm/Chỉnh sửa

demo từ trang web về những gì tôi đang cố gắng để làm: http://www.the-di-lab.com/demo/apples

tôi đọc mà tôi có thể sử dụng các phương pháp sau đây nhưng không chắc chắn làm thế nào để tích hợp nó:

dataInit : function (elem) { 
$(elem).datepicker(); 
} 
+0

Điều quan trọng là để thiết lập z-index cho datepicker. Xem [this] [1]. [1]: http://stackoverflow.com/questions/715677/trouble-with-jquery-dialog-and-datepicker-plugins/715695#715695 –

Trả lời

3

Dường như họ sử dụng 'afterShowForm' để đính kèm bộ chọn ngày/màu vào div.
(xem mã nguồn)

 
jQuery("#list").navGrid("#pager",{edit:true,add:true,del:true}, 
        {width:400,height:400,closeAfterEdit:true, 
      afterShowForm:function(){ $("#jsrs").load("/demo/apples/jsrs"); }, 
      onclickSubmit:function() { $("#jsrs").empty(); } 
}, 

(xem mã nguồn)

 
http://www.the-di-lab.com/demo/apples/jsrs 

//Js for colorPicker 
$('#color').ColorPicker({ 
    onSubmit: function(hsb, hex, rgb) { 
     $('#color').val("#"+hex); 
    }, 
    onBeforeShow: function() { 
     $(this).ColorPickerSetColor(this.value); 
    } 
}).bind('keyup', function(){ 
    $(this).ColorPickerSetColor(this.value); 
}); 


//Js for datePicker 
$('#date').DatePicker({ 
    format:'Y-m-d', 
    date: $('#date').val(), 
    current: $('#date').val(), 
    starts: 1, 
    position: 'bottom', 
    onBeforeShow: function(){ 
     $('#date').DatePickerSetDate($('#date').val(), true); 
    }, 
    onChange: function(formated, dates){ 
     $('#date').val(formated); 
    } 
    }); 

Cảm ơn cho việc tìm kiếm ví dụ này, tôi đang tìm kiếm cách để làm điều này là tốt.

+0

Cảm ơn bạn, nó đang dần trở lại với nhau, mã jsrs đang được kích hoạt khi cửa sổ mở ra nhưng tôi chỉ nhận được "$ (" # cuộc hẹn "). DatePicker không phải là một hàm" (Tôi đã thay đổi các phiên bản #date thành #appointment vì đó là id của trường mong muốn) Tất cả các tập lệnh/ui cần thiết để làm cho nó hoạt động bên ngoài cửa sổ bật lên, Có điều gì tôi cần làm mà tôi có thể bị thiếu không? Cảm ơn bạn!! – kilrizzy

+0

Ồ tôi chỉ cần "datepicker" thay vì "DatePicker" THANKS! – kilrizzy

15

Thêm datepicker là một nhiệm vụ dễ dàng:

colModel: [ 
    ... other column definitions ... 
    { 
    name:'my_date', index:'my_date', label: 'Date', width: 80, 
    editable: true, edittype: 'text', 
    editoptions: { 
     size: 10, maxlengh: 10, 
     dataInit: function(element) { 
     $(element).datepicker({dateFormat: 'yy.mm.dd'}) 
     } 
    } 
    }, 
    ... other column definitions ... 
] 

Trong couse, thay vì .datepicker bạn có thể sử dụng bất kỳ plugin như ColorPicker hoặc autocomplete.

+0

-1, Bạn có một số lỗi trong đó ... và mã đó dường như không hoạt động sau khi sửa lỗi – Fragsworth

+0

+1, Cảm ơn bạn đã chỉ ra 'editoptions.dataInit'; đó là phần còn thiếu để có được chỉnh sửa nội tuyến của tôi làm việc. –

+0

Rực rỡ. Làm việc cho tôi! – AnonyMouse

1

Sử dụng mã này để thêm datepicker để tạo/chỉnh sửa thoại:

.navGrid('#yourID', 
       { edit: true, add: true, del: true, search: true }, //options 
       { 
        ... 
        onInitializeForm: function() { 
         $('#yourDate').datepicker(); 
        }, 
        onClose: function() { 
         //if you close dialog when the datepicker is shown 
         $('.hasDatepicker').datepicker("hide") 
        } 
       }, 
       ... 
+0

Công trình này rất độc đáo – Cruachan

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