0

datatablesのフィルターに要素のリストを表示しようとすると問題が発生します。

私はこのチュートリアルに従い、データテーブルでフィルタリング レコードを作成しようとしました。

コントローラーでリストを返す次のコードがあります。

public JsonResult grupMonedas()
    {
        IList<MONEDA> temp = (from c in db.MONEDA
                                       select c).ToList();

        var result = from c in temp
                     select new String[] { c.NOMBREMONEDA };

        return Json(result);

      }

これは、データ テーブルとフィルターを作成するための私の JavaScript です。

$(document).ready(function () {

    //Nombre en la tabla donde se ejecutara
    var oCuentas = $('#tablaCuentas').dataTable({
        //Es el que emplementa para trabajar con la pagina
        "bServerSide": true,
        //Metodo el qual se ejecutara
        "sAjaxSource": "Cuentas/CargarCuentas",
        //Mensaje cargado
        "bProcessing": true,
        "bJQueryUI": true,
        //Columnas que cargara
        "aoColumns": [
        //Las columnas tienen que coincidir con la base de datos
                        {"sName": "NUMCUENTA" }, { "sName": "NOMBRECUENTA" }, { "sName": "SALDO" }, { "sName": "Moneda" }
                    ],
        //Mostrar Diferentes opciones
        "bPaginate": true,
        "bLengthChange": true,
        "bFilter": true,
        "bSort": true,
        "bInfo": true,
        "bAutoWidth": true
    }).columnFilter({
        "aoColumns": [
                                        { sSelector: "#numeroFiltro", type: "number" },
                                        { sSelector: "#nombreFiltro", type: "text" },
                                        { sSelector: "#saldoFiltro", type: "number-range" },
                                        { sSelector: "#monedaFiltro", type: "select", values: grupMonedas() }
        ]
    });
});



function validateJSON(x) {
    var orig = x;
    var stgify = JSON.stringify(orig);
    var splitchar = ['\\"', '\',\'', '[', ']', '\"'];
    var joinchar = ['\'', '\':\'', '', '', ''];

    for (i = 0; i < 5; i++) {
        stgify = stgify.split(splitchar[i]);
        tmp = stgify.join(joinchar[i]);
        stgify = tmp;
    }
    stgify = "[" + stgify + "]";
    var finalEdit = stgify;
    //alert(finalEdit); <- returns a ok list of elements :S
    return finalEdit;
}

function grupMonedas() {
    $.post('Cuentas/grupMonedas', {},
    function (data) {
        grupMonedas = validateJSON(data);
    },
    'json/javascript'
    );
    return grupMonedas;
}

しかし、select "Moneda" のフィルターでは、"title" を入力するだけで、リストに作成された要素はありません。

前もって感謝します。

PS: 私の英語でごめんなさい

4

1 に答える 1

0

によると"sAjaxSource": "Cuentas/CargarCuentas"、メソッドを呼び出しCargarCuentasて JSON の結果を取得する必要があります。それはどこにある?

于 2012-06-20T14:42:07.797 に答える