【问题标题】:DropDownList Children BindingDropDownList 子项绑定
【发布时间】:2015-08-24 10:19:36
【问题描述】:

我的下拉列表有问题,我不知道如何解决。

有两种不同的方式可以进入我的视图:添加新的和编辑。

1) 添加新的:在这种情况下,我的下拉列表与另一个相关,并且一切正常。 下拉列表被锁定并为空,直到我在另一个下拉列表中选择了某些内容。

2) 编辑:在这种情况下,我的下拉列表已经使用存储的数据绑定。当然,如果我更改“父”项中的选定项,我也想将数据更改为子项。

问题出现在第 2 种情况下:当我从相关下拉列表中的存储数据中选择其他内容时。 它绑定了正确的数据,但它给出了一个空项作为第一个,而不是第一个数据。

我该如何解决?

                            <%=Html.Kendo().DropDownListFor(model => model.GNR_FK)
                                .Name("GNR_FK")                                                                 .BindTo((IEnumerable<Models.Widget.Combo>)ViewData["Customer"])
                                .DataTextField("descriptionText")
                                .DataValueField("valueID")
                                .Value(Model.GNR_FK.ToString())
                                .Events(e =>
                                        {
                                            e.Select("onSelect");
                                        })                                            
                            %>

                            <%=Html.Kendo().DropDownListFor(model => model.CNT_FK)                                    .BindTo((IEnumerable<Models.Widget.Combo>)ViewData["Sender"])
                                .Name("CNT_FK")
                                .DataTextField("descriptionText")
                                .DataValueField("valueID")
                                %>

条件:

        if (Model.PK == 0)
        {
            loadValues(current);
        }
        else
        {
            loadEditValues(current);
        }


    public JsonResult loadValues(Models.Model current, int PK = 0)
    {

            IDataReader sender = Model.getSender(PK);
            Models.Widget.Combo SenderNA = new Models.Widget.Combo();
            List<Models.Widget.Combo> receiveSender = new List<Models.Widget.Combo>();

            SenderNA.valueID = 0;
            SenderNA.descriptionText = "NA";
            receiveSender.Add(SenderNA);

            while (sender.Read())
            {
                Models.Widget.Combo newItem = new Models.Widget.Combo();

                newItem.valueID = int.Parse(sender["PK"].ToString());
                newItem.descriptionText = sender["SURNAME"].ToString();

                receiveSender.Add(newListItem);
            }

            return Json(receiveSender, JsonRequestBehavior.AllowGet);
    }


    private void loadEditValues(Models.Model current)
    {

            int selected = current.GNR_FK;

            IDataReader sender = current.getSender(selectedCustomer);

            Models.Widget.Combo SenderNA = new Models.Widget.Combo();
            List<Models.Widget.Combo> receiveSender = new List<Models.Widget.Combo>();

            SenderNA.valueID = 0;
            SenderNA.descriptionText = "NA";
            receiveSender.Add(SenderNA);

            while (sender.Read())
            {
                Models.Widget.Combo newItem = new Models.Widget.Combo();

                newItem.valueID = int.Parse(sender["PK"].ToString());
                newItem.descriptionText = sender["SURNAME"].ToString();

                receiveSender.Add(newListItem);            


                ViewData["List"] = receiveSender;
            }         

    }

脚本:

   function onSelect(e) {
        var dataItem = this.dataItem(e.item);
        var PK = dataItem.valueID;

        $.ajax({
            type: 'POST',
            url: '/Project/loadValues',
            data: "{'PK':'" + PK + "'}",
            contentType: 'application/json; charset=utf-8',

            success: function (result) {     
                $("#CNT_FK").data("kendoDropDownList").dataSource.data(result);

            },
            error: function (err, result) {
                alert("Error" + err.responseText);
            }

        });
    }

问候

【问题讨论】:

    标签: javascript c# asp.net-mvc kendo-ui telerik


    【解决方案1】:

    问题解决了!

    缺少了更改数据后自动选择第一项的select方法!

    success: function (result) {
        var dropdown = $("#CNT_FK").data("kendoDropDownList");
        dropdown.dataSource.data(result);
        dropdown.select(0);
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多