我有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 });
}
}
答案 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");