jQuery数据表通过ajax加载列和数据

jQuery数据表通过ajax加载列和数据,jquery,asp.net-mvc,datatables,Jquery,Asp.net Mvc,Datatables,我按照这个链接进行ajax调用,以动态加载Jquery数据表 在我开始尝试之前,我被我的想法困住了 那么,数据表如何发送iDisplayLength、iDisplayStart、sEcho等属性来进行分页和显示记录呢 我该怎么处理 链接中的示例代码供快速参考 我可以使用ajax获取数据和列的详细信息,但是如何处理在MVC中发送给控制器的参数呢 非常感谢您的帮助:) 谢谢我的建议是在客户端使用手柄和应用数据表后呈现de表: 您将需要一个空表: <table id="mytable">

我按照这个链接进行ajax调用,以动态加载Jquery数据表

在我开始尝试之前,我被我的想法困住了

那么,数据表如何发送iDisplayLength、iDisplayStart、sEcho等属性来进行分页和显示记录呢

我该怎么处理

链接中的示例代码供快速参考 我可以使用ajax获取数据和列的详细信息,但是如何处理在MVC中发送给控制器的参数呢

非常感谢您的帮助:)


谢谢

我的建议是在客户端使用手柄和应用数据表后呈现de表:

您将需要一个空表:

<table id="mytable">
  <thead>
      <tr>
          <th>Col 1</th>
          <th>Col 2</th>
          <th>Col 3</th>
      </tr>
  </thead>
  <tbody id="table_data_container">
      <!-- Populated by JS -->
  </tbody>
</table>

希望有帮助;)

我的建议是在客户端使用手柄和应用数据表后呈现de表:

您将需要一个空表:

<table id="mytable">
  <thead>
      <tr>
          <th>Col 1</th>
          <th>Col 2</th>
          <th>Col 3</th>
      </tr>
  </thead>
  <tbody id="table_data_container">
      <!-- Populated by JS -->
  </tbody>
</table>

希望有帮助;)

这将帮助您更改
dropdownlist
并提交按钮,以填充数据表中的数据

注意:在处理
数据表时,此行将有助于传递表单中的其他控件值

 @using (@Html.BeginForm("action", "controllername", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
        <div class="table-responsive">
        <div class="col-sm-12">
            <div class="row">
                <div class="col-md-3">
                    <label>Report type</label>
                </div>
                <div class="col-md-3">

                    @Html.DropDownList("ReportTypeEnum", new SelectList(Enum.GetValues(typeof(appname.Model.ReportTypeEnum))), new {@class = "form-control"})
                </div>
                <div class="col-md-3">
                    <button class="btn btn-primary col-sm-12">Submit</button>
                </div>
in datatable binding model in ajax call as below:


 [ "ajax": {   "url": '@Url.Action("action", "controller")',
                                    'type': 'GET',
                                    "data": function (d) { d.reportType = $('#ReportTypeEnum :selected').text(); } //JSON.stringify({ reportType: varReportTypeEnum })
                                }]

    this code will for controller
dropdown enum: code in model:
 public enum ReportTypeEnum
    {

        Yes,
        No,
        NoResponse          
    }
and below datatable ajax calling method 
     public JsonResult ajaxcallmethod([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel, string reportType)// string reportType
            {

                // below is we are taking dropdownchange value based on that we load the data into datatable.
                yourmodel model = new yourmodel ();
                if (reportType.ToLower() == ReportTypeEnum.Yes.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.Yes;
                }
                else if (reportType.ToLower() == ReportTypeEnum.No.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.No;
                }
                else if (reportType.ToLower() == ReportTypeEnum.NoResponse.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.NoResponse;
                }

    data =// here model call 


                return Json(new DataTablesResponse((int)requestModel.Draw, data, transactionsListingResponse.PagerResource.ResultCount, transactionsListingResponse.PagerResource.ResultCount), JsonRequestBehavior.AllowGet);
            }
@使用(@Html.BeginForm(“action”、“controllername”、FormMethod.Post))
{
@Html.AntiForgeryToken()
报告类型
@DropDownList(“ReportTypeEnum”,新的SelectList(Enum.GetValues(typeof(appname.Model.ReportTypeEnum))),新的{@class=“form control”})
提交
在ajax中的datatable绑定模型中调用如下:
[“ajax”:{“url”:'@url.Action(“Action”,“controller”),
'type':'GET',
“data”:函数(d){d.reportType=$('#ReportTypeEnum:selected').text()}//JSON.stringify({reportType:varReportTypeEnum})
}]
此代码将用于控制器
下拉枚举:模型中的代码:
公共枚举ReportTypeEnum
{
对
不
无反应
}
下面是datatable ajax调用方法
公共JsonResult ajaxcallmethod([ModelBinder(typeof(DataTableBinder))]IDataTablesRequestModel,string reportType)//string reportType
{
//下面是我们获取dropdownchange值的基础,我们将数据加载到datatable中。
yourmodel model=newyourmodel();
如果(reportType.ToLower()==ReportTypeEnum.Yes.ToString().ToLower())
{
model.ReportTypeEnum=ReportTypeEnum.Yes;
}
else if(reportType.ToLower()==ReportTypeEnum.No.ToString().ToLower())
{
model.ReportTypeEnum=ReportTypeEnum.No;
}
else if(reportType.ToLower()==ReportTypeEnum.NorResponse.ToString().ToLower())
{
model.ReportTypeEnum=ReportTypeEnum.NoResponse;
}
data=//这里是模型调用
返回Json(新DataTablesResponse((int)requestModel.Draw,data,TransactionListingResponse.PagerResource.ResultCount,TransactionListingResponse.PagerResource.ResultCount),JsonRequestBehavior.AllowGet);
}

这将帮助您更改
下拉列表
和提交按钮,以填充数据表中的数据

注意:在处理
数据表时,此行将有助于传递表单中的其他控件值

 @using (@Html.BeginForm("action", "controllername", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
        <div class="table-responsive">
        <div class="col-sm-12">
            <div class="row">
                <div class="col-md-3">
                    <label>Report type</label>
                </div>
                <div class="col-md-3">

                    @Html.DropDownList("ReportTypeEnum", new SelectList(Enum.GetValues(typeof(appname.Model.ReportTypeEnum))), new {@class = "form-control"})
                </div>
                <div class="col-md-3">
                    <button class="btn btn-primary col-sm-12">Submit</button>
                </div>
in datatable binding model in ajax call as below:


 [ "ajax": {   "url": '@Url.Action("action", "controller")',
                                    'type': 'GET',
                                    "data": function (d) { d.reportType = $('#ReportTypeEnum :selected').text(); } //JSON.stringify({ reportType: varReportTypeEnum })
                                }]

    this code will for controller
dropdown enum: code in model:
 public enum ReportTypeEnum
    {

        Yes,
        No,
        NoResponse          
    }
and below datatable ajax calling method 
     public JsonResult ajaxcallmethod([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel, string reportType)// string reportType
            {

                // below is we are taking dropdownchange value based on that we load the data into datatable.
                yourmodel model = new yourmodel ();
                if (reportType.ToLower() == ReportTypeEnum.Yes.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.Yes;
                }
                else if (reportType.ToLower() == ReportTypeEnum.No.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.No;
                }
                else if (reportType.ToLower() == ReportTypeEnum.NoResponse.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.NoResponse;
                }

    data =// here model call 


                return Json(new DataTablesResponse((int)requestModel.Draw, data, transactionsListingResponse.PagerResource.ResultCount, transactionsListingResponse.PagerResource.ResultCount), JsonRequestBehavior.AllowGet);
            }
@使用(@Html.BeginForm(“action”、“controllername”、FormMethod.Post))
{
@Html.AntiForgeryToken()
报告类型
@DropDownList(“ReportTypeEnum”,新的SelectList(Enum.GetValues(typeof(appname.Model.ReportTypeEnum))),新的{@class=“form control”})
提交
在ajax中的datatable绑定模型中调用如下:
[“ajax”:{“url”:'@url.Action(“Action”,“controller”),
'type':'GET',
“data”:函数(d){d.reportType=$('#ReportTypeEnum:selected').text()}//JSON.stringify({reportType:varReportTypeEnum})
}]
此代码将用于控制器
下拉枚举:模型中的代码:
公共枚举ReportTypeEnum
{
对
不
无反应
}
下面是datatable ajax调用方法
公共JsonResult ajaxcallmethod([ModelBinder(typeof(DataTableBinder))]IDataTablesRequestModel,string reportType)//string reportType
{
//下面是我们获取dropdownchange值的基础,我们将数据加载到datatable中。
yourmodel model=newyourmodel();
如果(reportType.ToLower()==ReportTypeEnum.Yes.ToString().ToLower())
{
model.ReportTypeEnum=ReportTypeEnum.Yes;
}
else if(reportType.ToLower()==ReportTypeEnum.No.ToString().ToLower())
{
model.ReportTypeEnum=ReportTypeEnum.No;
}
else if(reportType.ToLower()==ReportTypeEnum.NorResponse.ToString().ToLower())
{
model.ReportTypeEnum=ReportTypeEnum.NoResponse;
}
data=//这里是模型调用
返回Json(新DataTablesResponse((int)requestModel.Draw,data,TransactionListingResponse.PagerResource.ResultCount,TransactionListingResponse.PagerResource.ResultCount),JsonRequestBehavior.AllowGet);
}

谢谢你的回答。我想在运行时通过服务器端分页加载列。有什么建议吗>,因为如果数据很大,我不想
 @using (@Html.BeginForm("action", "controllername", FormMethod.Post))
    {
        @Html.AntiForgeryToken()
        <div class="table-responsive">
        <div class="col-sm-12">
            <div class="row">
                <div class="col-md-3">
                    <label>Report type</label>
                </div>
                <div class="col-md-3">

                    @Html.DropDownList("ReportTypeEnum", new SelectList(Enum.GetValues(typeof(appname.Model.ReportTypeEnum))), new {@class = "form-control"})
                </div>
                <div class="col-md-3">
                    <button class="btn btn-primary col-sm-12">Submit</button>
                </div>
in datatable binding model in ajax call as below:


 [ "ajax": {   "url": '@Url.Action("action", "controller")',
                                    'type': 'GET',
                                    "data": function (d) { d.reportType = $('#ReportTypeEnum :selected').text(); } //JSON.stringify({ reportType: varReportTypeEnum })
                                }]

    this code will for controller
dropdown enum: code in model:
 public enum ReportTypeEnum
    {

        Yes,
        No,
        NoResponse          
    }
and below datatable ajax calling method 
     public JsonResult ajaxcallmethod([ModelBinder(typeof(DataTablesBinder))] IDataTablesRequest requestModel, string reportType)// string reportType
            {

                // below is we are taking dropdownchange value based on that we load the data into datatable.
                yourmodel model = new yourmodel ();
                if (reportType.ToLower() == ReportTypeEnum.Yes.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.Yes;
                }
                else if (reportType.ToLower() == ReportTypeEnum.No.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.No;
                }
                else if (reportType.ToLower() == ReportTypeEnum.NoResponse.ToString().ToLower())
                {
                    model.ReportTypeEnum = ReportTypeEnum.NoResponse;
                }

    data =// here model call 


                return Json(new DataTablesResponse((int)requestModel.Draw, data, transactionsListingResponse.PagerResource.ResultCount, transactionsListingResponse.PagerResource.ResultCount), JsonRequestBehavior.AllowGet);
            }