Каскадный выпадающий список с окном поиска - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь использовать каскадный Drop Down для проекта, но с небольшим поворотом. Для опытных пользователей они могут ввести код акции и выполнить поиск. Затем полученная информация обновляет выпадающий список родителей и каскадный выпадающий список.

Используя событие щелчка, я могу искать введенное значение, и оно возвращает всю необходимую информацию. Я могу обновить Родителя для отображения правильной информации, но не могу заставить ребенка отображаться. Он застрял на показе "- Выбрать -" Заполнение раскрывающегося списка данными для выбора прекрасно работает. Мог бы действительно использовать некоторую проницательность и помочь .. Получил глупость на ребенка. Спасибо ..

Я следовал этому примеру для настройки выпадающих меню. asp.net MVC каскадные выпадающие списки

<Controller>
public ActionResult Create()
        {
            ViewData["User"] = User.Identity.GetUserName();
            BindPartType();
            return View();
        }
 public void BindPartType()
        {
            partsmanagementEntities5 parttypelist = new partsmanagementEntities5(); //Parts
            var parttype = parttypelist.parttypes.ToList();
            List<SelectListItem> pli = new List<SelectListItem>();
            pli.Add(new SelectListItem { Text = "--Select Catagory--", Value = "0" });
            foreach (var m in parttype)
            {
                pli.Add(new SelectListItem { Text = m.PartType1, Value = m.idPartType.ToString() });
                ViewBag.PartType = pli;
            }
        }
        public JsonResult GetInventory(int? id)
        {
            partsmanagementEntities5 partlist = new partsmanagementEntities5();
            var ddlpart = partlist.parts.Where(x => x.PartType == id).ToList();
            List<SelectListItem> lipart = new List<SelectListItem>();
           lipart.Add(new SelectListItem { Text = "--Select Inventory--", Value = "0" });
            if (ddlpart != null)
            {
                foreach (var x in ddlpart)
                {
                    lipart.Add(new SelectListItem { Text = x.PartDescription, Value = x.idParts.ToString() });
                }
            }
            return Json(new SelectList(lipart, "Value", "Text", JsonRequestBehavior.AllowGet));
        }
 public JsonResult Check(string id)
        {
            partsmanagementEntities5 partlist = new partsmanagementEntities5();
            StringBuilder test = new StringBuilder();
            if(id != null && id != "")
            {
                foreach (char c in id)
                {
                    if (!char.IsNumber(c))
                        test.Append(c);
                }

                var ddlpartnumber = partlist.parts.Where(x => x.PartNumber == id.ToString());
                PartDetails li = new PartDetails();
                foreach (var item in ddlpartnumber.ToList())
                {
                    li.PartNumber = item.PartNumber;
                    li.PartPrice = item.PartPrice;
                    li.idParts = item.idParts;
                    li.EHF = item.EHF;
                    li.PartDescription = item.PartDescription;
                    li.PartImage = item.PartImage;
                    li.partImageContentType = item.partImageContentType;
                    li.unit = item.unit;
                    li.PartType = item.PartType;
                    li.VendorPartNumber = item.VendorPartNumber;                  
                }
                return Json(li, JsonRequestBehavior.AllowGet);
            }
            return Json("", JsonRequestBehavior.AllowGet);
        }


<View>

<table>
                    <tr>
                        <td style="padding-left:0.8ex;padding-top:0.8ex">@Html.Label("Catagory: ")</td>
                        <td>
                            @Html.DropDownListFor(model => model.PartType, ViewBag.PartType as List<SelectListItem>, new { style = "width: 800px;" })
                            @Html.ValidationMessageFor(model => model.PartType, "", new { @class = "text-danger" })
                        </td>
                        <td style="padding-left:6ex;padding-top:0.8ex"></td>
                    </tr>
                    <tr>
                        <td style="width:1px;white-space:nowrap;padding-left:0.8ex">@Html.Label("Inventory:  ")</td>
                        <td>
                            @Html.DropDownListFor(model => model.PartNumber, new SelectList(string.Empty, "Value", "Text"), "--Select Inventory--", new { style = "width:900px" })
                            @Html.ValidationMessageFor(model => model.PartNumber, "", new { @class = "text-danger" })
                        </td>

                    </tr>
                    <tr>
                        <td style="width:1px;white-space:nowrap;padding-left:6ex">@Html.Label("Or choose:")</td>

                    </tr>
                    <tr>
                        <td style="width:1px;white-space:nowrap;padding-left:0.8ex">@Html.Label("Enter Valid Part #:  ")</td>
                        <td><input type="text" name="CheckPartNumber" id="CheckPartNumber">  <input type="button" id="Search" value="Search" class="btn btn-default" />
                    </tr>
                </table>

<script src="~/Scripts/jquery-3.0.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
        $("#PartType").change(function () {
            $("#PartNumber").empty();
            $.ajax({
                type: 'POST',
                url: '@Url.Action("GetInventory", "partrequests")',
                dataType: 'json',
                data: { id: $("#PartType").val() },
                success: function (PartNumber) {
                    $.each(PartNumber, function (i, PartNumber) {
                        $("#PartNumber").append('<option value="'
                                                   + PartNumber.Value + '">'
                                             + PartNumber.Text + '</option>');
                    });
                },
                error: function (ex) {
                    alert('Failed.' + ex);
                }
            });
            return false;
        })
    });

$(document).ready(function () {

        $("#Search").click(function () {
             $.ajax({
                type: 'POST',
                url: '@Url.Action("Check","partrequests")',
                dataType: 'json',
                data: { id: $("#CheckPartNumber").val() },
                success: function (Data) {
                var selectedValue = Data.PartType
                $('#PartType option').map(function () {
                 if ($(this).val() == selectedValue) return this;
                }).attr('selected', 'selected').change();
                var selectedValue2 = Data.idParts;
                $('#PartNumber option').map(function () {
                 if ($(this).val() == selectedValue2) return this;
                }).attr('selected', 'selected');
                },
                error: function (ex) {
                    alert('Failed.' + ex);
                }
            });
            return false;
        })
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...