0

グリッドに 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"])
 %>

グリッドが編集モードでない場合、名前の代わりに値 (ID) が表示されるため、foreignKey で selectList を使用していますが、これはまったく別の問題であり、それほど重要ではありません。それでも、グリッドが編集モードでないときに名前を表示するように ComboBox を設定する方法を誰かが知っていれば、それもありがたいです。

4

2 に答える 2

1

私は何が問題なのかを理解しました。EditorTemplate の ComboBoxFor の名前を StvarateljId で変更しました。これは、ComboBoxFor が Grid の Title にバインドされておらず、ForeignKey 部分のプロパティの名前にバインドされているためです。

于 2012-07-09T09:42:11.273 に答える
0

ダリオ、
回答のコメントで質問に対処するには (「SelectList を使用しないでください」): ForeignKey から、EditorTemplates に似た DisplayTemplates/StvarateljId を持つ単純な Bound 列に変更しようとしましたか? ForeignKey を使用する代わりに、このセットアップである程度成功しました。

これは、この正確なセットアップを示す Telerikのデモへのリンクです。

于 2012-12-05T22:19:13.003 に答える