从数据库中检索所有下拉值,并在下拉列表中将保存的值显示为选定的值

时间:2015-04-21 08:52:30

标签: asp.net-mvc kendo-ui

我在mvc4中使用带有弹出编辑模式和编辑器模板的kendo网格。该模板由一个下拉列表组成,该列表通过数据库绑定。问题出现在编辑操作中,所有其他数据与下拉列表的所有元素一起被检索并显示在相应的html属性中,例如文本框,复选框等,但是我从下拉列表中保存的值未在那里自动选择。

  

实施例

在添加操作期间,我从下拉列表中选择了“工作”并将其保存在数据库中。在编辑时,我希望在下拉列表中自动选择“工作”。

[AcceptVerbs(HttpVerbs.Post)]
public JsonResult Update([DataSourceRequest] DataSourceRequest request,Model object)
{
   if (obj == null || !ModelState.IsValid) return null;
      var obj = _Repo.FindBy(t => t.ID == object.ID);
      obj.Text = object.Text;
      obj.Type = object.Type;
      obj.MasterTypeID_Fk = new Guid(object.Type);
      obj.Notes = object.Notes;
      obj.Primary = object.Primary;
      obj.LastVerified = DateTime.Now.ToUniversalTime();
      obj.LastUpdated = DateTime.Now.ToUniversalTime();
      _Repo.Update(obj);
      var result = new[] { object }.ToDataSourceResult(request, ModelState);
      return Json(result);
}

//this is my code for ddl in editor template

@(Html.Kendo().DropDownList()
    .Name("Type")
    .DataTextField("Value")
    .DataValueField("TypeID")
    .DataSource(source =>
    {
        source.Read(read => { read.Action("GetTypes", "Dashboard"); });
    })
)

// this is code in controller to bind ddl

public ActionResult GetTypes()
{
    List<TypeModel> Type = _Repo.GetTypes().ToList().ToMap<TypeBO, TypeModel>();
    Type.Insert(0, new TypeModel() { Value = "--Select--", TypeID = Guid.Empty });
    return Json(Type, JsonRequestBehavior.AllowGet);
}

1 个答案:

答案 0 :(得分:0)

您可以使用Value("ValueData")

在Html帮助器中设置值
@(Html.Kendo().DropDownList()
    .Name("Type")
    .DataTextField("Value")
    .DataValueField("TypeID")
    .DataSource(source =>
    {
        source.Read(read => { read.Action("GetTypes", "Dashboard"); });
    })
    .Value("ValueData")
)

就像在这个例子中一样:http://demos.telerik.com/aspnet-mvc/dropdownlist/index