从数据表中的json格式的控制器获取数据

时间:2016-07-31 10:48:04

标签: javascript jquery asp.net-mvc datatable

情况就是这样。

  • 我在datatable js中使用ajax调用来绑定表中的json数据。
  • 现在我直接使用json文件进行数据绑定。
  • 现在我想访问我编写过的数据库中的数据 我的控制器里面的方法返回json值。
  • 但我无法像调用json文件一样调用此方法 在ajax。请提出解决方案。

    以下是代码示例

    var table = $('#example').DataTable({
            "ajax": "/content/data/dataList.json", //here I want the url of my method.
            "bDestroy": true,
            "iDisplayLength": 15,
            "columns": [
                {
                    "class": 'details-control',
                    "orderable": false,
                    //"data": null,
                    "defaultContent": ''
                },
                { "data": "name" },
            ],
            "order": [[1, 'asc']],
            "fnDrawCallback": function (oSettings) {
                runAllCharts();
            }
        }); 
    

我的方法ID:

//Controller Name AppDetail
    public string getData(string ddlid)
    {
        DataTable ddl = new DataTable();
        string query = string.Empty;
        if (ddlid == "O1")
        {
            query = "SELECT for O1";
        }
        else if (ddlid == "O2")
        {
            query = "SELECT for O2";
        }
        con.Open();
        MySqlDataAdapter da = new MySqlDataAdapter(query, con);
        da.Fill(ddl);
        con.Close();
        System.Web.Script.Serialization.JavaScriptSerializer jSearializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        return jSearializer.Serialize(ddl);               
    }

这是json数据样本

    {
    "data": [
         {
            "name": "Aladdin"
        }  
    ]
}

请帮助。

3 个答案:

答案 0 :(得分:1)

如果您不使用服务器端处理方法首先使用ajax方法获取所有数据并在数据表上使用该数据。看看下面的代码......它可能会帮助你获得一些想法。

  $.ajax({
            url: 'api/AppDetail/getData',
            method: 'get',
            data :{ddlid:'01'},          // this is input parameter for your function
            dataType: 'json',
            contentType: 'text/json',
            success: function(res){
                var table=$('#example').dataTable({
                    data: res,
                    columns:[
                           {'data':'name'}
                      ],
                     bDestroy : true,
                iDisplayLength : 15,
                 });  
            }
        });

答案 1 :(得分:0)

如果您的控制器正常工作,您可以在DataTables之前调用它,并通过DataTables的数据(https://datatables.net/reference/option/data)来源插入数据

答案 2 :(得分:0)

在Controller上如果你正在获取你想要的数据,那么你可以将这个数据返回到局部视图。 请注意,部分视图不是一个html表,你可以使用Razor语法或任何东西。 然后进行ajax调用以返回此局部视图,成功后,您可以应用数据表插件。

int' to

希望这会对你有帮助..