Jquery 使用ajax的MVC多级级联下拉过滤表
我想有多个下拉列表,过滤同一页上的表。当您转到页面时,它会显示一个表格。当您选择第一个下拉列表时,它会缩小数据范围并更新第二个下拉列表 这是我正在研究的一个例子 我可以让级联下拉菜单工作,也可以让表更新,但两者都不能 我正在尝试使用ajax,这样页面就不会重新加载Jquery 使用ajax的MVC多级级联下拉过滤表,jquery,ajax,asp.net-mvc,sorting,Jquery,Ajax,Asp.net Mvc,Sorting,我想有多个下拉列表,过滤同一页上的表。当您转到页面时,它会显示一个表格。当您选择第一个下拉列表时,它会缩小数据范围并更新第二个下拉列表 这是我正在研究的一个例子 我可以让级联下拉菜单工作,也可以让表更新,但两者都不能 我正在尝试使用ajax,这样页面就不会重新加载 任何指导或例子都会很棒 我还没有看到您的代码,所以无法说出确切的问题。以下是我对您的解决方案的看法。首先,将第二个下拉列表值添加到筛选方法中,当未选中时,它应该具有默认值 public ActionResult Index(s
任何指导或例子都会很棒 我还没有看到您的代码,所以无法说出确切的问题。以下是我对您的解决方案的看法。首先,将第二个下拉列表值添加到筛选方法中,当未选中时,它应该具有默认值
public ActionResult Index(string sortOrder, string id,
string channelLocation, int secon_ddl = 0)
然后检查是否选择了second,在本例中是否为0,并进行筛选
if(secon_ddl != 0)
{
//do whatever
}
添加另一个方法,它将项目列表返回给第二个方法,并在第一个下拉列表值更改时调用它。最好的选择是JSON格式的返回值。
这是我的代码,当类别更改时,我正在更新子类别列表
('#category_list').change(function() {
var cat_value = $(this).val();
$.ajax({
url: '/Product/GetSubCategory',
type: "GET",
dataType: "JSON",
data: { category: cat_value },
contentType: 'application/json',
success: function (data) {
if (data.length > 0) {
var list = $('#subCategory_list');
list.html(""); // clear before appending new list
list.append(
$('<option></option>').val(null).html("Chose"));
$.each(data, function (i, subCat) {
list.append(
$('<option></option>').val(subCat.id).html(subCat.name));
});
}
}
});
}
在您的情况下,最后的代码应该完全不同。只需确保您的筛选方法接收两个下拉列表的值,并在其中一个下拉列表更改时触发。希望这对你有帮助
('#category_list, #subCategory_list').change(function(){
table.draw();
})