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