检索jquery数据表的多个数据

时间:2015-04-29 14:38:28

标签: jquery ajax datatables

我hava数据表在客户端返回25条记录(100条记录中)。除了那25行,我想要一个数组或任何包含所有100条记录的第一列的数据结构

我的代码:

var oTable = $('#tblClipart').dataTable({
        'bStateSave': true,        
        'bProcessing': true,
        'bServerSide': true,
        'aaSorting': [[6, 'desc']],
        'bFilter': false,
        'iDisplayLength': 25,
        'sPaginationType': "bootstrap",
        'sDom': 'Rlfrtlip',
        'aoColumns': [
            // Some Code
            ],
    'sAjaxSource': '/Handlers/Manage.ashx' // Handler page for providing data
});

处理程序代码

List<ClipartEntity> clipArtEntityList = null;
clipArtEntityList = //Get Data From Server - All 100 Records

var result = new
{
    iTotalRecords = totalRecords,
    iTotalDisplayRecords = totalRecords, //Display only first 25     
    /* ClipartIds = clipArtEntityList.Select(m => m.ClipartID ), Can add this line to retrieve just one column in array list */
    aaData = clipArtEntityList
        .Select(p => new[] { 
            Convert.ToString("C"+p.ClipartID), 
            p.ClipartName + Convert.ToString(p.Sequence), 
            Convert.ToString(p.CategoryName),           
            Convert.ToString(p.ClipartID),
            p.ClipartNameForSort
        })
        .Skip(iDisplayStart)
        .Take(iDisplayLength)
};

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var json = serializer.Serialize(result);
context.Response.ContentType = "application/json";
context.Response.Write(json);

我可以将ClipartIds = clipArtEntityList.Select(m => m.ClipartID ),添加到var result变量,以array格式获取所有100条记录的第一列数据

但问题是如何在客户端检索它?

P.S。我不想再进行另一个ajax调用来检索一个列数据,因为我之前的ajax调用包含该数据。

1 个答案:

答案 0 :(得分:1)

您只需要使用fnServerData回调..您已经创建了自定义ClipartIds返回参数,因此要在客户端使用它,只需将回调添加到数据表初始化:< / p>

var oTable = $('#tblClipart').dataTable({
    'fnServerData': function ( sSource, aoData, fnCallback ) {
            $.getJSON(sSource, aoData, function (json) {
                // do something with the column of Ids
                var clipartIds = json.ClipartIds;
                fnCallback(json);
            });
        },
    'bStateSave': true,
    ...