我在网格中设置了一个ComboBox。它显示一切正常,但当我在ComboBox中选择任何东西时,它没有将正确的值发布到服务器,我调试它并发现它总是发布值0。 知道为什么会这样,以及如何解决它? 这是重要的代码:
**Controller**
//lista za stvaratelje (ComboBox)
var stvaratelji = newStvarateljiService.GetAllStvaratelje();
//za combobox
ViewBag.stvaratelji = stvaratelji;
//za selectlist
var listaStvaratelja = new SelectList(stvaratelji, "IdStvaratelj", "Naziv");
ViewData["stvaratelji"] = listaStvaratelja;
**View**
columns.ForeignKey(b => b.StvarateljId, (SelectList)ViewData["stvaratelji"]).Title("Stvaratelji").EditorTemplateName("Stvaratelji").Width("30%");
**EditorTemplate**
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.Telerik().ComboBoxFor(m => m)
.Name("Stvaratelji")
.Filterable(filtering =>
filtering.FilterMode(AutoCompleteFilterMode.Contains)
)
.Encode(false)
.AutoFill(true)
.BindTo((SelectList)ViewData["stvaratelji"])
%>
我正在使用带有foreignKey的selectList,因为当网格不处于编辑模式时,它会显示值(ID)而不是名称,但这是一个完全不同的问题,而且不是那么重要。然而,如果有人知道如何设置ComboBox以在网格未处于编辑模式时显示名称,那么也会感激。
答案 0 :(得分:1)
我弄清楚问题是什么。 我在“StvarateljId”中更改了EditorTemplate的ComboBoxFor的名称,因为ComboBoxFor没有绑定到Grid中的Title,而是“ForeignKey”部分中属性的名称。
答案 1 :(得分:0)
的Dario,
要在答案的评论中解决问题(“不要使用SelectList”):
您是否尝试使用类似于EditorTemplates的DisplayTemplates / StvarateljId从ForeignKey更改为简单的Bound列?我在这个设置上取得了一些成功,而不是使用ForeignKey。
这是Telerik的link to the demos,显示了这个确切的设置。