如何将其他数据绑定到Telerik Kendo下拉列表

本文关键字:Telerik Kendo 下拉列表 数据绑定 其他 | 更新日期: 2023-09-27 18:35:47

我有一个剑道下拉列表。 它以位置名称作为文本,以位置 ID 作为值进行设置。 但是,我需要将第三个字段绑定到模型(或至少以某种方式返回到我的控制器)。 有没有办法绑定其他数据? 我已经看到过几个可以通过模板在下拉框中显示其他数据的地方,但我找不到任何将附加值传递回控制器的示例。

下拉框使用的模型具有以下字段:

  • 原始位置名称
  • 原始位置标识
  • 客户编号

目前,origLocationName 是下拉列表中显示的文本值,origLocationID 是绑定到模型并传递给控制器的值。 我想要的是当用户从下拉框中选择选择时能够绑定客户 ID 和原始位置 ID。

这是我的下拉框:

                    @(Html.Kendo().DropDownListFor(m => m.ddLocation)
                        .Name("ddLocation")
                        .HtmlAttributes(new { style = "width: 500px;", onchange = "onChange_ddLocation(this)" })
                        .OptionLabel("Select from List")
                        .DataTextField("origLocationName")
                        .DataValueField("origLocationID")
                        .BindTo(Model.locations)
                )

当用户选择一个位置时,我可以像这样访问控制器中的原始位置ID:

        [HttpPost]
    public ActionResult CustomerDashboard(ModelCustomerDashboard model)
    {
        ...
        dash.ddLocation = model.ddLocation;
    ...
        return View(dash);
    }

如何传递位置的客户编号及其位置 ID?

几点说明。 (1.)我不能只传递一个ID并查找位置和客户ID。每个位置有多个客户。 因此,位置 ID 123 可能位于公司 ABC 和公司 DEF 中。 我没有设计这个,无法对数据库进行更改;只是使用我所拥有的。 (2.)我想将客户ID和位置ID合并到一个字段中,如下所示:"CustID:ABC;位置ID:123"。 然后我可以解析ddLocation并获取两个值。 我宁愿不这样做,因为有些地方不需要客户 ID(有些用户只能看到一个客户),所以目前在 ddLocation 中只有位置 ID 的设置对他们有用。 我宁愿不必重写我已经为该实例所做的一切。

例:

Dropdown Box
-------------
Visible Text     ddLocation     ddCustomer
Warehouse 1      123            ABC
Warehouse 2      456            ABC
Studio A         123            DEF
User selects the first item.
Controller
----------
model.ddLocation = '123'
model.ddCustomer = 'ABC'

编辑 1:

下面是更改下拉框时调用的 jquery:

    function onChange_ddLocation(arg) {
    try {
        $("#dropDownSource").val("Location");
        document.forms[0].submit();
    }
    catch (ex) {
        alert(ex.message);
    }
}

如何将其他数据绑定到Telerik Kendo下拉列表

模型ModelCustomerDashboard中添加新属性,例如customerOrigLocationID,它将是customerID和origLocationID与一些分隔符(如"-"或";")的组合。(连字符或分号)。将此客户OrigLocationID作为数据值字段绑定到下拉列表。在后端,您可以使用分隔符将其拆分并具有值。