【问题标题】:selection list filtering in datatables (MVC 3) with javascript使用javascript在数据表(MVC 3)中过滤选择列表
【发布时间】:2012-05-03 22:33:29
【问题描述】:

我在尝试向 datatables 中的过滤器显示元素列表时遇到问题。

我关注this tutorial 并尝试在数据表中过滤记录。

我有这段代码可以在我的控制器中返回列表:

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;
}

但是在选择“Moneda”的过滤器中只放一个“标题”,仅此而已,没有在列表中创建的元素。

提前致谢。

PS:对不起我的英语

【问题讨论】:

    标签: javascript asp.net-mvc-3 datatables


    【解决方案1】:

    根据"sAjaxSource": "Cuentas/CargarCuentas",你应该调用CargarCuentas方法来获取JSON结果。它在哪里?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 2019-05-19
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      相关资源
      最近更新 更多