ドロップダウンリストクライアントのテンプレートを編集するときに、私のコントローラで、私のajax .Update( "_ SaveAjaxEditing"、 "AptProfile")にnull値が渡されています。私のグリッドがバインドされている私のFormViewModelでTelerik MVCグリッド編集テンプレートDropDownListの問題
プロパティ:ここ
[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、ヘルパーオブジェクトを使用してBuildingオブジェクトの列挙可能なリストを返すのはどうですか?編集テンプレートで、ViewDataをヘルパークラスメソッドに置き換えます。これは、グリッドデータがバインドされる前に一度レンダリングされた後、同じリストが各行に使用されることを覚えておいてください。 – Winger
ありがとう、ウィンガー。私はそれを調べます。その間に、私が見ることができるこのような事の良い例を知っていますか? – campbelt