2016-12-25 3 views
0

Я хотел бы иметь несколько выпадающих списков, которые фильтруют таблицу на той же странице. Когда вы переходите на страницу, она отображает таблицу при выборе первого раскрывающегося списка, которое сужает данные и обновляет второе раскрывающееся меню.MVC несколько каскадных выпадающих таблицы фильтрации с использованием ajax

Вот пример я работаю над MVC Sort headers and Dropdown Ajax update

я могу получить каскадные выпадающие работает, или я могу получить таблицу для обновления, но я не могу получить оба.

Я пытаюсь использовать ajax, чтобы страница не перезагружалась.

Любые указания или примеры были бы замечательными!

ответ

0

Я не видел ваш код, поэтому не могу точно определить проблему. Вот как я вижу ваше решение. Сначала добавьте второе значение раскрывающегося списка к вашему методу фильтрации, оно должно иметь значение по умолчанию, если оно не выбрано.

public ActionResult Index(string sortOrder, string id, 
           string channelLocation, int secon_ddl = 0) 

Затем проверьте, если вторым было выбрано, в данном случае это для 0, и фильтра

if(secon_ddl != 0) 
    { 
     //do whatever 
    } 

Добавить другой метод список Wich возвращает элементы ко второму способу и вызывать его, когда флиртует выпадающее значение изменилось , Лучшим вариантом является возвращаемое значение в формате 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)); 
       }); 
      }    
     } 
    }); 
} 

Я использую JQuery DataTables, поэтому обновление таблицы просто

('#category_list, #subCategory_list').change(function(){ 
     table.draw(); 
}) 

В вашем случае этот последний код должен быть полностью различно. Просто убедитесь, что ваш фильтр mehtod получает значения обоих выпадающих списков и его срабатывание при изменении одного из выпадающих меню. Надеюсь, это поможет вам!

Смежные вопросы