1
Telerik的ASP.NET MVC 2011年第二季度如何通過Ajax的複雜類型的數據綁定
我有這勢必阿賈克斯一格:
@(Html.Telerik().Grid<IUser>()
.Name("UsersGrid")
.DataBinding(binding => binding.Ajax().Select("UsersGridSelect", "User", new { area = "Admin" }))
.ClientEvents(events => events.OnDataBinding("onGridRefresh"))
...
...
這是我onGridRefresh處理程序:
function onGridRefresh(e)
{
var modelData =
{
Username: $('#SearchModel_Username').val(),
FirstName: $('#SearchModel_FirstName').val(),
LastName: $('#SearchModel_LastName').val(),
IsLocked: $('#SearchModel_IsLocked').is(':checked'),
ClientId: $('#SearchModel_ClientId').val(),
UserCode: $('#SearchModel_UserCode').val(),
ExpireDateFrom: $('#SearchModel_ExpireDateFrom').val(),
ExpireDateTo: $('#SearchModel_ExpireDateTo').val()
};
e.data = { searchModel: modelData };
}
這是我的控制器:
[GridAction]
public ActionResult UsersGridSelect(UserSearchModel searchModel)
{
IList<IUser> userList = searchModel == null ? new List<IUser>() : _repository.GetUsers(searchModel);
return View(new GridModel(userList));
}
這個設置不起作用,我知道......但是至少它證明了我在做什麼。 當我通過我作爲單獨的參數值,它的工作原理:
public ActionResult UsersGridSelect(string Username, string Firstname, string LastName,....)
但我會prefere在把它作爲一個對象。有什麼辦法可以實現嗎?
試過已經 - 沒有工作。如果你這樣做,問題是你需要在處理器方法上聲明什麼類型。輸入'UserSearchModel'不起作用。在這種情況下,參數'searchModel'始終爲空。 – Andreas
我不知道該說什麼。我正在做一個非常類似的事情,使用帶有屬性StartDate和EndDate的CalendarModel,並在onDataBinding中傳遞它們。我能夠使用我的自定義類型作爲唯一的參數,這兩個屬性正確地綁定到我的模型對象。我會說你的觀點和UserSearchModel發佈,也許這將揭示一些有關這個問題。 – sharpper