2012-06-13 51 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); 
       } 
      }); 
     }