은 첫째, 당신이 필요 : 여기
<%= 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"))
%>)
내 컨트롤러입니다 : 여기
[UIHint("BuildingsGrid"), Required]
[DisplayName("Building ID")]
public int BuildingID
{
get;
set;
}).
내이다 뷰의 컬럼 이름을 편집 템플리트 및 컨트롤러 조치 매개 변수의 이름과 일치시킵니다. int 매개 변수가 컨트롤러 동작에서 nullable 일 필요가 있다고 생각하지 않습니다.
그런 다음 컨트롤러 작업에서 편집 템플릿의 ViewData [ "건물"]을 설정해야합니다. 보기를 리턴하기 전에 프로파일 오브젝트에서 현재 값을 선택하십시오.
public ActionResult _SaveAjaxEditing(int id, int BuildingsGrid)
{
ApartmentProfileRepository repo = new ApartmentProfileRepository();
AptProfile profile = repo.Get(id);
// Save the building ID in the profile
profile.BuildingID = BuildingsGrid;
TryUpdateModel(profile);
repo.Save();
// Load the Building objects into the ViewData
ViewData["Buildings"] = GetBuildings();
return View(new GridModel(GetAllProfiles()));
}
윙거, ViewData를 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 내 모델에서 SelectList 속성에 액세스하여이를 수행하는 방법을 알아 내려고했지만이를 해결하지 못했습니다. – campbelt
campbelt, 도우미 개체를 사용하여 건물 개체의 목록을 반환하는 방법은 무엇입니까? 편집 템플리트에서 ViewData를 도우미 클래스 메소드로 바꿉니다. 그리드 데이터가 바인딩되기 전에 한 번만 렌더링 된 다음 각 행에 대해 동일한 목록이 사용된다는 점을 기억하십시오. – Winger
고마워, 윙어. 나는 그것을 들여다 볼 것이다. 그 동안 내가 볼 수있는 이런 종류의 좋은 예를 알게됩니까? – campbelt