[HttpPost]
public JsonResult StudentList(int id= 0, int id2= 0)
{
try
{
//Get data from database
List<Student> students = _repository.StudentRepository.GetStudents(id,id2);
//Return result to jTable
return Json(new { Result = "OK", Records = students},JsonRequestBehaviour.AllowGet);
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message },JsonRequestBehaviour.AllowGet);
}
}
我的jquery
$("#DDL_id").change(function(){
//fill dropdown2 "DDL_idd" by ajax via get json call
});
$("#DDL_idd").change(function(){
var id= $("#DDL_id").val();
var idd= $("#DDL_idd").val();
var url = '/admin/StudentList?id1=' +id + '&id2='+idd;
$('#General_InfoTableContainer').jtable({
title: 'General_Info List',
actions: {
listAction: url
},
fields: {
RID: {
key: true,
create: false,
edit: false,
list: true,
title: 'RID',
width: '5%'
},
Quote: {
title: 'Open Quote',
list: true,
width: '15%',
},
Customer_Name: {
list: true,
title: 'Customer',
width: '25%'
}
}
});
//Load student list from server
$('#General_InfoTableContainer').jtable('load');
});
});
我第一次获得控制器中两个下拉列表的正确ID但是之后如果我从下拉列表中更改我的选择,我的操作没有获得新值,并且它以旧值执行始终“StudentList(int id1 = 0, int id2 = 0)“id1和id2具有旧值,从不再次重置 我已经完成了
$.ajaxSetup({ cache: false });
和
[Nocache]
关于控制器操作和其他解决方案。请帮助。
答案 0 :(得分:0)
你的问题是一个变量范围/闭包。
当jTable选项对象被创建并传递给jTable构造函数时,url中的任何值都被修复为listAction。
看起来您正在尝试执行“过滤”操作
只需将listAction设置为url的静态部分
即可listAction: '/admin/StudentList',
然后填充表格
$('#General_InfoTableContainer').jtable('load',{
'id1':$("#DDL_id").val(),
'id2':$("#DDL_idd").val()});