C# 如何将其他数据绑定到Telerik剑道下拉列表
我有剑道下拉列表。它以位置名称作为文本,位置ID作为值进行设置。但是,我还有第三个字段需要绑定到模型(或者至少以某种方式返回到我的控制器)。有没有办法绑定其他数据?我见过几个地方,通过模板可以在下拉框中显示附加数据,但我找不到任何将附加值传递回控制器的示例 下拉框使用的模型具有以下字段:C# 如何将其他数据绑定到Telerik剑道下拉列表,c#,model-view-controller,razor,kendo-ui,telerik,C#,Model View Controller,Razor,Kendo Ui,Telerik,我有剑道下拉列表。它以位置名称作为文本,位置ID作为值进行设置。但是,我还有第三个字段需要绑定到模型(或者至少以某种方式返回到我的控制器)。有没有办法绑定其他数据?我见过几个地方,通过模板可以在下拉框中显示附加数据,但我找不到任何将附加值传递回控制器的示例 下拉框使用的模型具有以下字段: origLocationName 原声带 客户ID 当前,origLocationName是下拉列表中显示的文本值,origLocationID是绑定到模型并传递给控制器的值。我想要的是,当用户从下拉框中选
- origLocationName
- 原声带
- 客户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)
)
当用户选择位置时,我可以访问控制器中的origLocationID,如下所示:
[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;LocationID: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);
}
}
在模型CustomerDashboard中添加新属性,例如customerOrigLocationID,它将是customerID和origLocationID与一些分隔符的组合,如“-”或“;”(连字符或分号)。 将此CustomerRigLocationId作为DataValueField绑定到下拉列表。
在后端,您可以使用分隔符将其拆分并获得值。在模型CustomerDashboard中添加新属性,例如customerOrigLocationID,它将是customerID和origLocationID与一些分隔符的组合,如“-”或“;”(连字符或分号)。 将此CustomerRigLocationId作为DataValueField绑定到下拉列表。
在后端,您可以使用Separator将其拆分并获得值。如何将其发回(或Ajax)到CustomerDashboard?你能发布客户端代码吗?谢谢你的回复。当下拉列表更改时,我会执行一个简单的表单提交。我编辑了我的问题以包含代码。如果您对我有任何建议,请告诉我。您可以发布前端代码的其余部分吗?您如何将其发回(或Ajax)到CustomerDashboard?你能发布客户端代码吗?谢谢你的回复。当下拉列表更改时,我会执行一个简单的表单提交。我编辑了我的问题以包含代码。如果你对我有任何建议,请告诉我。你可以发布前端代码的其余部分吗?