Я получаю пустое значение, переданное в мой ajax .Update ("_ SaveAjaxEditing", "AptProfile") в моем контроллере при использовании клика EditData.Telerik MVC Grid Редактировать Шаблон DropDownList проблема
свойство в моем FormViewModel, что моя сетка обязана:
[UIHint("BuildingsGrid"), Required]
[DisplayName("Building ID")]
public int BuildingID
{
get;
set;
}).
Вот мое мнение:
<%= Html.Telerik().Grid<PayRent.Models.AptProfileFormViewModel1>()
.Name("Profiles")
.DataKeys(dataKeys => dataKeys.Add(c => c.AptProfileID))
.ToolBar(commands => commands.Insert())
.DataBinding(binding =>
{
binding.Ajax()
.Select("GetProfiles", "AptProfile")
.Insert("_InsertAjaxEditing", "AptProfile")
.Update("_SaveAjaxEditing", "AptProfile")
.Delete("_DeleteAjaxEditing", "AptProfile");
})
.Columns(columns =>
{
columns.Bound(o => o.AptProfileID);
columns.Bound(o => o.BuildingID);
columns.Bound(o => o.AptID);
columns.Bound(o => o.AptRate);
columns.Bound(o => o.AptSize);
columns.Bound(o => o.MoveInDate);
columns.Command(s =>
{
s.Edit();
s.Delete();
});
})
.Editable(editing => editing.Mode(GridEditMode.InLine))
.ClientEvents(events => events.OnEdit("onEdit"))
.Pageable()
%>
</p>
<script type="text/javascript">
function onEdit(e) {
// $(e.form).find('#BuildingsGrid').data('tDropDownList').select(function (dataItem) {
// return dataItem.Text == e.dataItem['BuildingGrid'];
// });
}
</script>
My EditTemplate:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%= Html.Telerik().DropDownList()
.Name("BuildingsGrid")
.BindTo(new SelectList((IEnumerable)ViewData["Buildings"], "BuildingID", "Name"))
%>)
Вот мой контроллер:
[AcceptVerbs(HttpVerbs.Post)]
//[CultureAwareAction]
[GridAction]
public ActionResult _SaveAjaxEditing(int id, int? BuildingGrid)
{
ApartmentProfileRepository repo = new ApartmentProfileRepository();
AptProfile profile = repo.Get(id);
TryUpdateModel(profile);
repo.Save();
return View(new GridModel(GetAllProfiles()));
}
Winger, есть ли способ сделать это без использования ViewData? Я пытаюсь понять, как это сделать, получив доступ к свойству SelectList на моей модели, но не могу это решить. – campbelt
campbelt, как насчет использования вспомогательного объекта для возврата перечислимого списка объектов здания. В шаблоне редактирования замените ViewData на метод вспомогательного класса. Просто помните, что это делается только один раз, прежде чем данные сетки привязаны, а затем тот же список используется для каждой строки. – Winger
Спасибо, Вингер. Я займусь этим. А пока, знаете ли вы, что это хороший пример такого рода вещей, на который я могу смотреть? – campbelt