【问题标题】:Get data from controller in json form inside a datatable在数据表中以 json 形式从控制器获取数据
【发布时间】:2016-12-05 14:36:45
【问题描述】:

情况就是这样。

  • 我在datatable js中使用ajax调用来绑定我的表中的json数据。
  • 现在我直接使用json文件进行数据绑定。
  • 现在我想访问我的数据库中的数据,为此我编写了一个 我的控制器中返回 json 值的方法。
  • 但是我不能像调用我的 json 文件那样调用这个方法 在阿贾克斯。请提出解决方案。

    以下是代码示例

    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"
        }  
    ]
}

请帮助。

【问题讨论】:

    标签: javascript jquery asp.net-mvc datatable


    【解决方案1】:

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

    <div id=MyTable></div>
    $.ajax({
            type: 'GET',
            url: ControllerName/ActionName=partialView Which makes table. 
            success: function (data) {
                debugger;
                $('#MyTable').html(data); //Puting result of ajax call to the  div which containg Id,
                $('#PartilView_Table').DataTable({  // Applying DataTable Plugin table inside partialView                               
                    "bProcessing": true,
                    "bDeferRender": true,
                    "scrollX": true,
                    "stateSave": true,
                    "bAutoWidth": true,
                    "bSort": false,
                    "columnDefs": [
                      {
    
                      }
                    ]
                  });
          },
          });
    

    希望对你有所帮助..

    【讨论】:

      【解决方案2】:

      如果您不使用服务器端处理方法,请先使用 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,
                       });  
                  }
              });
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-03
          • 1970-01-01
          • 2017-07-24
          相关资源
          最近更新 更多