2012-06-13 17 views
6

Tengo un selector de fecha JQuery UI. Al seleccionar la fecha, los datos en el gráfico cambian.MVC 3.0 JQUERY Actualización de página parcial

El problema es que cuando selecciono la fecha en el selector de fecha, toda la página se actualiza y los datos se llenan.

¿Hay alguna manera, puedo simplemente actualizar el gráfico que está en la etiqueta? Tenga en cuenta que, al seleccionar la fecha, jquery publica en el servidor y obtiene los datos nuevos para la fecha seleccionada.

Estoy usando $.ajax({ }); para hacer una llamada al servidor. Pensé que esto sería un truco, pero no es el caso.

Cualquier ayuda será muy apreciada.

+0

Es posible que necesite para implementar la función ajax para actualizar el gráfico de evitar la actualización de la página. ¿Cómo actualizas el gráfico? En el lado del servidor? –

+0

El gráfico se actualiza usando JSON y knockout.js. Sería bueno si de todos modos puedo conectar el selector de datos con KO. –

+0

Si se actualiza desde la fuente JSON a través de javascript, es posible que no necesite ajax. Prueba agregar "return false;" al final de la función, actualiza el gráfico. Se evitará el evento de devolución de datos al servidor. –

Respuesta

1

Prueba este

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

Se necesitaría algo así como

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

I don `t sabe el nombre de sus métodos, divs, sólo cambia en consecuencia si esto ayuda. probar algo de la siguiente manera:

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