Grid中的Telerik MVC ComboBox没有发布正确的值

时间:2012-07-07 18:03:33

标签: combobox telerik grid postback

我在网格中设置了一个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以在网格未处于编辑模式时显示名称,那么也会感激。

2 个答案:

答案 0 :(得分:1)

我弄清楚问题是什么。 我在“StvarateljId”中更改了EditorTemplate的ComboBoxFor的名称,因为ComboBoxFor没有绑定到Grid中的Title,而是“ForeignKey”部分中属性的名称。

答案 1 :(得分:0)

的Dario,
要在答案的评论中解决问题(“不要使用SelectList”): 您是否尝试使用类似于EditorTemplates的DisplayTemplates / StvarateljId从ForeignKey更改为简单的Bound列?我在这个设置上取得了一些成功,而不是使用ForeignKey。

这是Telerik的link to the demos,显示了这个确切的设置。