Выпадающий список фильтра на другом фильтре - PullRequest
0 голосов
/ 29 ноября 2011

Привет, ребята, я знаю, что это обсуждалось так много, но я до сих пор не понимаю, как оно работает.

Мне нужно отфильтровать представление сетки по нескольким выпадающим спискам, и основная идея - это "продолжить"фильтрация сетки.Я имею в виду, когда я выбираю значение из ddl1, тогда ddl2 фильтруется в соответствии с выбранным значением в ddl1.

Также называется каскадным выпадающим списком, но я не хочу (не могу) использовать Ajax Control Toolkit ...

Есть ли другие решения для этого?Может быть, метод protected void DropDownList2_SelectedIndexChanged(...) может сделать это, но я не знаю, как его использовать.

Пожалуйста, помогите Спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 29 ноября 2011

Я бы предложил использовать Jquery для заполнения каскадных выпадающих списков.Добавьте этот скрипт на свою веб-страницу.

$(document).ready(function () {

$ ("# <% = ddlState.ClientID%>"). Change (function () {

var sourceddl = "<%= ddlState.ClientID %>";
var stateid = $("#<%= ddlState.ClientID %> option:selected").val();
var Stateid = { Stateid: stateid };

$.ajax({
                type: 'POST',
                url: 'YourCodeBehind.aspx/GetCounties',
                data: JSON.stringify(Stateid),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (result) {                       
                          if (data.d) { 
                          var options = [];                     
                          if (result.d) {
                          for (var i = 0; i < result.d.length; i++) {
                               options.push('<option value="',
                                              result.d[i].countyID, '">',
                                              result.d[i].countyName, '</option>');
                            }

                            $("#<%= ddlCounty.ClientID %>").html(options.join(''));
                        }                        
                     }
                },
                error: function () {
                    alert("Error! Try again...");
                }
            });

        });

    });

вот веб-методкоторый находится в том же коде.

[WebMethod]
public static County[] GetCounties(int Stateid)
{
    County[] countiesArr = StatesCountyModel.GetCountyForState(Stateid).ToArray();
    return countiesArr;     
}

Если вы новичок в Jquery, пройдите через http://Jquery.com, чтобы понять, как его использовать.

Надеюсь, это поможет.

Правин

2 голосов
/ 29 ноября 2011

Посмотрите на ниже. Это просто, чтобы дать вам идею ...

DropDownList1_SelectedIndexChanged(...){
// get the ddl1 selected value
// filter the datasource used by dropdownlist2
// databind DropDownList2 
}

DropDownList2_SelectedIndexChanged(...){
    // get the ddl1 selected value 
    // get the ddl2 selected value 
    // filter the datasource used by GridView(using the DropDownList selected values)
    // databind GridView 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...