2012-05-03 67 views
0

我試圖在datatables中向過濾器顯示元素列表時出現問題。使用javascript過濾數據表(MVC 3)中的選擇列表

我遵循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:對不起,我的英語

回答

0

"sAjaxSource": "Cuentas/CargarCuentas",你應該叫CargarCuentas方法來獲取JSON結果。它在哪裏?

相關問題