2012-06-13 76 views
6

我有一個JQuery UI日期選擇器。選擇日期後,圖表上的數據會發生變化。MVC 3.0 JQUERY部分頁面更新

問題是,當我選擇日期選擇器上的日期,整個頁面刷新和數據被填充。

無論如何,我可以只更新標籤上的圖形?請注意,選擇日期後,jquery發佈到服務器並獲取選定日期的新數據。

我使用$.ajax({ });撥打服務器的電話。我原以爲這會做一些技巧,但情況並非如此。

任何幫助將不勝感激。

+0

您可能需要實現Ajax功能來更新圖表,以避免頁面刷新。你如何更新圖表?在服務器端? –

+0

使用JSON和knockout.js更新圖表。如果反正我可以用KO連接數據選取器,那將會很好。 –

+0

如果它通過javascript從JSON源更新,則可能不需要ajax。嘗試添加「返回false」;在函數結束時更新圖形。它將阻止向服務器回發事件。 –

回答

1

試試這個

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

你可能會需要像

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

我不`噸知道你的方法名稱,申報單,只需相應改變,如果這會有所幫助。 試試如下:

 $("#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); 
       } 
      }); 
     }