在DataTable的ajax post call中传递更新的数据

时间:2018-02-21 06:37:13

标签: c# jquery ajax post

请考虑以下jquery DataTable刷新代码:

在cshtml中:

<table id="companies" class="table table-bordered table-responsive table-hover">
    <thead>
        <tr>
            <th></th>
            <th>CompanyName</th>               
        </tr>
    </thead>
    <tbody></tbody>
</table>

<input id="btn" type="button" value="button" />
<input id="hdnTest" type="hidden"  value="1" name="testinput">

在剧本中:

$('#btn').click(function () {           
        $('#hdnTest').attr('value', '2');        
        $('#companies').DataTable().ajax.reload();
    });


$(document).ready(function () {

    var table = $("#companies").DataTable({
        processing: true,
        serverSide: true,
        ajax: {
            url: "../Home/Companies",                
            type: "POST",
            data:  { CompanyID: $('#hdnTest').val() }
        }
})
});

在.cs:

[HttpPost]
    public JsonResult Companies(CompanyDto objCompanyDto)
    {

隐藏字段默认值为&#34; 1&#34;,因此第一次加载页面时,方法公司被调用,objCompanyDto公司ID为&#34; 1&#34;。

单击该按钮,隐藏字段的值更改为&#34; 2&#34;,在DataTable上调用重新加载函数,方法公司被调用,但objCompanyDto的CompanyID仍然具有值&#34 1#34;

如何将hiddenfield的新值传递给Companies方法?

1 个答案:

答案 0 :(得分:0)

Hiddenfield可能无法到达更改时间。请尝试以下声明。

 $('#btn').click(function () {           
    $('#hdnTest').attr('value', '2');        
     setInterval(function () {

     $('#companies').DataTable().ajax.reload();

      }, 60000);
});