2012-06-13 31 views
6

Tôi đã chọn Bộ chọn ngày giao diện người dùng JQuery. Khi lựa chọn ngày, dữ liệu trên đồ thị thay đổi.MVC 3.0 JQUERY Cập nhật một phần trang

Vấn đề là khi tôi chọn ngày trên bộ chọn ngày, làm mới toàn bộ trang và dữ liệu được điền.

Có cách nào, tôi chỉ có thể cập nhật biểu đồ có trên thẻ? Lưu ý, khi lựa chọn ngày, bài đăng jquery đến máy chủ và nhận dữ liệu mới cho ngày đã chọn.

Tôi đang sử dụng $.ajax({ }); để thực hiện cuộc gọi đến máy chủ. Tôi đã nghĩ rằng điều này sẽ làm một thủ thuật nhưng nó không phải là trường hợp.

Mọi trợ giúp sẽ được đánh giá cao.

+0

Bạn có thể cần triển khai hàm ajax để cập nhật biểu đồ nhằm tránh làm mới trang. Làm cách nào để cập nhật biểu đồ? Ở phía máy chủ? –

+0

Đồ thị được cập nhật bằng cách sử dụng JSON và knockout.js. Sẽ được tốt đẹp nếu có anyway tôi có thể treo lên bộ chọn dữ liệu với KO. –

+0

Nếu nó được cập nhật từ nguồn JSON qua javascript, bạn có thể không cần ajax. Thử thêm "return false;" ở cuối hàm bạn cập nhật biểu đồ. Nó sẽ ngăn chặn sự kiện postback đến máy chủ. –

Trả lời

1

Hãy thử điều này

$('#datepickerid').datepicker({ 
    onSelect: function(dateText, inst) { 
    $.ajax({ ... }); 
    return false; 
    } 
}); 
2

Bạn sẽ cần một cái gì đó giống như

$('button').click(function(event){ 
    event.preventDefault(); 
    $.ajax({ ... }); 
}); 
4

tôi don `t biết tên của phương pháp của bạn, div, chỉ cần thay đổi cho phù hợp nếu điều này giúp. Hãy thử một cái gì đó như sau:

 $("#DateDiv").datepicker({ 
     showOtherMonths: true, 
     selectOtherMonths: true, 
     dateFormat: "yy/mm/dd", 
     onSelect: function (dateText, inst) 
     { 
      UpdateGraph(dateText); 
     }, 
     onChangeMonthYear: function(year, month, inst) 
     { 
      $.ajax({ 
       async: false, 
       cache: false, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       url: "@Url.Action("LoadGraph", "YourController")", 
       data: 
       { 
        date: new Date(year, month - 1, 1).toString("yyyy/MM/dd") 
       }, 
       success: function (data) 
       { 
$("#UpdateGraphDataDiv").html(data); 
            }, 
       error: function (request, status, error) 
       { 
        DisplayErrorMessageBox(ParseErrorFromResponse(request.responseText, "Unknown error"), true); 
       } 
      }); 
     } 
Các vấn đề liên quan