jQuery jTable ListAction参数值不变

时间:2016-02-04 00:02:50

标签: c# asp.net-mvc jquery-jtable

我有2个jQuery UI datepickers,并使用jQuery jTable显示我的数据。 当我单击LOAD按钮时,它调用我的LoadTable函数,该函数使用所选日期调用我的ASP.NET MVC 4控制器方法。

我第一次选择故意不返回数据的日期,但第二次选择正确的日期时,第一次的日期值在我的控制器中总是相同的,所以值永远不会在第一次选择后改变。

请有人解释为什么会发生这种情况,或建议修复? 我认为它可能是一个没有解决的jQuery AJAX回调,但我不确定。

<div>
    <input type="datetime" id="StartDate" readonly="readonly" />
    <input type="datetime" id="EndDate" readonly="readonly" />
    <button type="button" id="btnLoadTable">LOAD</button>
</div>

<div id="JTableContainer"></div>

<script type="text/javascript">
    $('#btnLoadTable').click(function () {
        LoadTable($('#StartDate').val(), $('#EndDate').val());
    });
</script>

function LoadTable(startDate, endDate) {
    $("#JTableContainer").jtable({
    title: '',
    paging: false,
    sorting: true,
    defaultSorting: 'Name ASC',
    columnSelectable: false,
    openChildAsAccordion: true,
    actions: {
        listAction: '@Url.Action("DataList")?startDate=' + startDate + '&endDate=' + endDate
    },
    fields: {
      // abbreviated for space

public JsonResult DataList(string startDate, string endDate)
{
    try
    {
        // I know a straight-parse is not best practice.
        var data = _repository.GetData(DateTime.Parse(startDate), DateTime.Parse(endDate));

        return Json(new { Result = "OK", Records = data, TotalRecordCount = data.Count });
    }
    catch (Exception ex)
    {             
        return Json(new { Result = "ERROR", Message = ex.Message });
    }
}

2 个答案:

答案 0 :(得分:0)

你需要调用$('#JTableContainer')。jtable('load')来实际将记录加载到你的表中。见jTable.org API Reference

答案 1 :(得分:0)

$('#element').jtable({ajaxSettings: { type: 'GET', cache:false }});
$element.jtable('destroy');
$element.jtable({FULL JSON LOAD DATA });
$element.jtable("load");

Github #issue