Asp.net каскадный выпадающий список jquery
Уважаемая Команда Проекта Кодекса ,
Пожалуйста, решите мою кодовую головоломку, я много пробовал и не хочу сдаваться,
Я построил каскадный выпадающий список с помощью asp.net jquery
Код для каскадного выпадающего списка выглядит следующим образом,
Мой JSCRIPT
<script type="text/javascript"> $(function () { $('#<%=ddlclassification2.ClientID %>').attr('disabled', 'disabled'); $('#<%=ddlSubCategory.ClientID %>').attr('disabled', 'disabled'); $('#<%=ddlclassification2.ClientID %>').append('<option selected="selected" value="0">Select Category</option>'); $('#<%=ddlSubCategory.ClientID %>').empty().append('<option selected="selected" value="0">Select SubCategory</option>'); $('#<%=ddlclassification1.ClientID %>').change(function () { var Entity = $('#<%=ddlclassification1.ClientID%>').val() $('#<%=ddlclassification2.ClientID %>').removeAttr("disabled"); $('#<%=ddlSubCategory.ClientID %>').empty().append('<option selected="selected" value="0">Select SubCategory</option>'); $('#<%=ddlSubCategory.ClientID %>').attr('disabled', 'disabled'); $.ajax({ type: "POST", url: "DigitalPrepping.aspx/BindCategory", data: "{'Entity':'" + Entity + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { var j = jQuery.parseJSON(msg.d); var options; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>' } $('#<%=ddlclassification2.ClientID %>').html(options) }, error: function (data) { alert('Something Went Wrong') } }); }); $('#<%=ddlclassification2.ClientID %>').change(function () { var Category = $('#<%=ddlclassification2.ClientID%>').val() $('#<%=ddlSubCategory.ClientID %>').removeAttr("disabled"); $.ajax({ type: "POST", url: "DigitalPrepping.aspx/BindSubCategory", data: "{'Category':'" + Category + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { var j = jQuery.parseJSON(msg.d); var options; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>' } $('#<%=ddlSubCategory.ClientID %>').html(options) }, error: function (data) { alert('Something Went Wrong') } }); }) $('#<%=rdlist.ClientID %> input').change(function () { // The one that fires the event is always the // checked one; you don't need to test for this var Data = $(this).val(); $.each(Data.split(/\|/), function (i, val) { if (i == 0) { $('#<%=ddlclassification1.ClientID %>').val($.trim(val)); } if (i == 1) { $.ajax({ type: "POST", url: "DigitalPrepping.aspx/BindSubCategory", data: "{'Category':'" + Category + "'}", contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { var j = jQuery.parseJSON(msg.d); var options; for (var i = 0; i < j.length; i++) { options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>' } $('#<%=ddlSubCategory.ClientID %>').html(options) }, error: function (data) { alert('Something Went Wrong') } }); $('#<%=ddlclassification2.ClientID %>').val($.trim(val)); } if (i == 2) { } }) }); }) </script>
ASP.NET контроль,
<tr> <td> <asp:Label ID="lblclassification1" Text="Classification" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlclassification1" CausesValidation="true" runat="server" Width="170px" AutoPostBack="True" ValidationGroup="req" OnSelectedIndexChanged="ddlclassification1_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblClassification2" Text="Category" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlclassification2" CausesValidation="true" runat="server" Width="170px" AutoPostBack="True" ValidationGroup="req" OnSelectedIndexChanged="ddlclassification2_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td> <asp:Label ID="lblClassification3" Text="SubCategory" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlSubCategory" runat="server" Width="170px" OnSelectedIndexChanged="ddlSubCategory_SelectedIndexChanged"> </asp:DropDownList> </td> <td> <asp:Label ID="lblTypeTOSearch" runat="server" Text="Type to Search" Visible="False"></asp:Label> </td> </tr>
Код C#.
[WebMethod] public static string BindCategory(string Entity) { BAL_UploadVendorDocument b_up = new BAL_UploadVendorDocument(); DataTable dt = b_up.GetClassification_2("ZI100115", Entity); StringWriter builder = new StringWriter(); builder.WriteLine("["); if (dt.Rows.Count > 0) { builder.WriteLine("{\"optionDisplay\":\"Select Category\","); builder.WriteLine("\"optionValue\":\"0\"},"); for (int i = 0; i <= dt.Rows.Count - 1; i++) { builder.WriteLine("{\"optionDisplay\":\"" + dt.Rows[i]["DocumentCategory_Value"] + "\","); builder.WriteLine("\"optionValue\":\"" + dt.Rows[i]["DocumentCategory_ID"] + "\"},"); } } else { builder.WriteLine("{\"optionDisplay\":\"Select Category\","); builder.WriteLine("\"optionValue\":\"0\"},"); } string returnjson = builder.ToString().Substring(0, builder.ToString().Length - 3); returnjson = returnjson + "]"; return returnjson.Replace("\r", "").Replace("\n", ""); } [WebMethod] public static string BindSubCategory(string Category) { BAL_UploadVendorDocument b_up = new BAL_UploadVendorDocument(); DataTable dt = b_up.GetClassification_3("ZI100115", Category); StringWriter builder = new StringWriter(); builder.WriteLine("["); if (dt.Rows.Count > 0) { builder.WriteLine("{\"optionDisplay\":\"Select SubCategory\","); builder.WriteLine("\"optionValue\":\"0\"},"); for (int i = 0; i <= dt.Rows.Count - 1; i++) { builder.WriteLine("{\"optionDisplay\":\"" + dt.Rows[i]["SubCategory_Value"] + "\","); builder.WriteLine("\"optionValue\":\"" + dt.Rows[i]["SubCategory_ID"] + "\"},"); } } else { builder.WriteLine("{\"optionDisplay\":\"Select SubCategory\","); builder.WriteLine("\"optionValue\":\"0\"},"); } string returnjson = builder.ToString().Substring(0, builder.ToString().Length - 3); returnjson = returnjson + "]"; return returnjson.Replace("\r", "").Replace("\n", ""); }
мой каскадный выпадающий список работает абсолютно нормально
пример: когда я выбираю классификацию 1, она заполняет классификацию 2, а когда я выбираю классификацию 2, она заполняет список подкатегорий.
Проблема:
У меня есть классификация список вариантов переключателей
когда я выбираю предложение, оно должно автоматически заполнять список классификаций 1,2 и подкатегорий.
Что я уже пробовал:
Когда я выбираю suggestion radiobutton list, он должен автоматически заполнять все три выпадающих списка соответствующими значениями.
$('#<%=rdlist.ClientID % & gt; input'). change(функция () {
// Тот, кто запускает событие, всегда является
// проверил один; вам не нужно проверять это
var Data = $(this). val();
$.каждый(данные.сплит(/\|/), функция (я, Валь) {
если (i = = 0) {
// ниже строка работает нормально, так как классификация 1 заполняется при загрузке страницы моего кода
$('#<%=ddlclassification1.ClientID %>'). val ($. trim(val));
//Он запускает триггер и вызывает мое событие изменения classification1 и заполняет значения в раскрывающемся списке / / classification 2
$('#<%=ddlclassification1.ClientID %>'). trigger ('change');
}
если (i == 1) {
// Ниже строка не работает
$('#&ЛТ;%=ddlclassification2.Идентификатора ClientID %&ГТ;').функция val($.отделка(Валь));
}
если (i == 2) {
}
})
});
Я буду признателен, если кто-нибудь потратит немного времени и решит эту проблему.
Я очень расстроен.
Спасибо и с уважением,
Сунил Мали