2012-06-13 12 views
6

Mam próbnik dat JQuery UI. Po wybraniu daty zmieniają się dane na wykresie.MVC 3.0 JQUERY Aktualizacja częściowej strony

Problem polega na tym, że po wybraniu daty w selektorze daty cała strona odświeża się i dane zostaną wypełnione.

Czy mimo to mogę zaktualizować wykres na etykiecie? Uwaga: po wybraniu daty jQuery wysyła posty na serwer i pobiera nowe dane dla wybranej daty.

Używam połączenia $.ajax({ });, aby wykonać połączenie z serwerem. Myślałem, że to zrobi jakąś sztuczkę, ale tak nie jest.

Każda pomoc będzie mile widziane.

+0

Być może będziesz musiał zaimplementować funkcję ajax, aby zaktualizować wykres, aby uniknąć odświeżania strony. Jak aktualizujesz wykres? Po stronie serwera? –

+0

Wykres jest aktualizowany za pomocą JSON i knockout.js. Byłoby miło, gdyby udało mi się podłączyć próbnik danych z KO. –

+0

Jeśli zostanie zaktualizowany ze źródła JSON za pośrednictwem javascript, może nie być potrzebny ajax. Spróbuj dodać "return false;" na końcu funkcji aktualizujesz wykres. Zapobiegnie to wystąpieniu zdarzenia odświeżenia na serwerze. –

Odpowiedz

1

Spróbuj

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

Czy trzeba coś takiego

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

nie wiem nazwę swoimi metodami, DIV, wystarczy zmienić odpowiednio czy to pomaga. Spróbuj czegoś w następujący sposób:

 $("#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); 
       } 
      }); 
     } 
Powiązane problemy