none
Pasar código de C# a VB RRS feed

  • Pregunta

  • Buenas,

    Tengo una aplicación MVC en la que devuelvo un objeto Json para el paginado de una grilla (jQuery DataTable).

    [HttpPost]
    public async Task<JsonResult> LoadData()
    {
    	// ...
    
    	result = Json(new { draw, recordsFiltered = paged.TotalRows, recordsTotal = paged.TotalRows, data = lista });
    
    	return result;
    }

    Esto funciona correctamente y en la respuesta de la petición devuelve esto:

    Quiero hacer algo similar pero ahora en una aplicación WebForms donde tengo lo siguiente:

    <WebMethod(EnableSession:=True)> _
    <ScriptMethod> _
    Public Shared Function LoadData(clientParams As DataTableParams) As DataTableResult(Of ClsCursoCapacitacion)
    	' ...
    	
    	Dim dtResult = New DataTableResult(Of ClsCursoCapacitacion)
    	dtResult.draw = draw
    	dtResult.recordsFiltered = paged.TotalRows
    	dtResult.recordsTotal = paged.TotalRows
    	dtResult.data = lista
    
    	Return dtResult
    End Function

    Sin embargo, me devuelve lo siguiente en la petición:


    La estructura está envuelta en el objeto d.

    La grilla muestra los registros pero el footer no funciona y está deformado.

    Quizás sea porque el callback dataSrc espera la misma estructura que se obtiene en el caso de MVC. ¿Cómo hago para que VB retorne la estructura sin envolverla en ese objeto d?



    • Editado eduar2083 sábado, 24 de agosto de 2019 13:47
    sábado, 24 de agosto de 2019 13:40

Respuestas

  • Después de investigar un poco, resulta que mi configuración del DataTable estaba errada. Tenía activado el procesamiento por servidor (serverSide: true) y además estaba utilizando el callback "dataSrc" para controlar en qué momento se obtiene la respuesta y así abrir un modal dado que la grilla estaba en dicho modal.

    Según se menciona aquí no basta con utilizar dataSrc con el procesamiento por servidor activado, en tal caso se debe utilizar xhr.dt tal como lo indica y con eso ya funciona correctamente.

    Lo que me extraña es porqué si funciona en MVC.




    sábado, 24 de agosto de 2019 17:58