Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用ajax的MVC多级级联下拉过滤表_Jquery_Ajax_Asp.net Mvc_Sorting - Fatal编程技术网

Jquery 使用ajax的MVC多级级联下拉过滤表

Jquery 使用ajax的MVC多级级联下拉过滤表,jquery,ajax,asp.net-mvc,sorting,Jquery,Ajax,Asp.net Mvc,Sorting,我想有多个下拉列表,过滤同一页上的表。当您转到页面时,它会显示一个表格。当您选择第一个下拉列表时,它会缩小数据范围并更新第二个下拉列表 这是我正在研究的一个例子 我可以让级联下拉菜单工作,也可以让表更新,但两者都不能 我正在尝试使用ajax,这样页面就不会重新加载 任何指导或例子都会很棒 我还没有看到您的代码,所以无法说出确切的问题。以下是我对您的解决方案的看法。首先,将第二个下拉列表值添加到筛选方法中,当未选中时,它应该具有默认值 public ActionResult Index(s

我想有多个下拉列表,过滤同一页上的表。当您转到页面时,它会显示一个表格。当您选择第一个下拉列表时,它会缩小数据范围并更新第二个下拉列表

这是我正在研究的一个例子

我可以让级联下拉菜单工作,也可以让表更新,但两者都不能

我正在尝试使用ajax,这样页面就不会重新加载


任何指导或例子都会很棒

我还没有看到您的代码,所以无法说出确切的问题。以下是我对您的解决方案的看法。首先,将第二个下拉列表值添加到筛选方法中,当未选中时,它应该具有默认值

    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();
 })