如何解决如何将Json对象与Telerik MVC网格重新绑定
|| 我m having problem with rebinding grid with Json object….
I
正在尝试创建自定义删除按钮...
到目前为止,我具有Jquery函数:获取所选列的ID(用户名)并调用控制器操作“ UserDetails”
删除按钮:
$(\"#DeleteUser\").click(function () {
if (id != \"\") {
var answer = confirm(\"Delete user \" + id)
if (answer) {
$.ajax({
type: \"POST\",url: \"/Admin/UserDetails\",data: \"deleteName=\" + id,success: function (data) {
}
});
}
} else {
$(\"#erorMessage\").html(\"First you must select user you whant to delete!\");
}
});
这是动作控制器UserDetails(字符串startsWith,字符串deleteName)
[GridAction]
public ActionResult UserDetails(string startsWith,string deleteName)
{ // Custom search...
if (!string.IsNullOrEmpty(startsWith))
{
return GetSearchUserResult(startsWith);
}
if (!string.IsNullOrEmpty(deleteName))
{
TblUserDetails user = db.TblUserDetails.Single(a => a.TblUser.userName == deleteName);
try
{
TblUser userToDelete = db.TblUser.Single(a => a.userId == user.TblUser.userId);
db.DeleteObject(user);
db.DeleteObject(userToDelete);
db.SaveChanges();
Membership.DeleteUser(deleteName);
List<UserDto> retModelData = new List<UserDto>();
//GetAllUsers() returns a List<UserDto> of users.
retModelData = GetAllUsers();
var model = new GridModel
{
Data = retModelData,Total = GetAllUsers().Count()
};
return View(model);
}
catch
{
return View(new GridModel());
}
}
else
{
var user = GetAllUsers();
return View(new GridModel(user));
}
}
到目前为止,一切正常。但是我可以将这些Json数据绑定到网格中吗?
这是我想与网格绑定的Json结果...
这是我的网格:
@(Html.Telerik().Grid<App.Web.Models.UserDto>()
.Name(\"Grid\")
.DataKeys(key =>
{
key.Add(a => a.Id);
})
.Columns(column =>
{
column.Bound(a => a.Username).Filterable(false);
column.Bound(a => a.FirstName).Filterable(false);
column.Bound(a => a.LastName).Filterable(false);
column.Bound(a => a.Email).Filterable(false);
})
.DetailView(detailView => detailView.ClientTemplate(
\"<table id=\'DetailTable\'><tbody><tr class=\'UserRow\'><td class=\'Tbllable\'><b>First name</b></td><td><#= FirstName #></td>\"
+ \"<td></td><td></td>\"
+ \"</tr><tr><td class=\'Tbllable\'><b>Last name</b></td>\"
+ \"<td><#= LastName #></td>\"
+ \"<td id=\'Roles\'></td><td id=\'Operations\'></td>\"
+ \"</tr><tr><td class=\'Tbllable\'><b>Username</b></td><td><#= Username #></td></tr><tr><td class=\'Tbllable\'><b>Address</b></td>\"
+ \"<td><#= Address #></td></tr><tr><td class=\'Tbllable\'><b>Email</b></td><td><#= Email #></td></tr><tr><td class=\'Tbllable\'><b>Birth date</b></td>\"
+ \"<td></td></tr><tr><td class=\'Tbllable\'><b>Registration date</b></td><td></td></tr><tr><td class=\'Tbllable\'><b>Phone number</b></td>\"
+ \"<td><#= PhoneNumberHome #></td></tr><tr><td class=\'Tbllable\'><b>Mobile number</b></td><td><#= PhoneNumberMobile #></td></tr></tbody></table>\"
))
//.EnableCustomBinding(true)
.DataBinding(bind => bind.Ajax().Select(\"UserDetails\",\"Admin\",new { startsWith = ViewBag.startsWith }))
.Pageable(paging =>
paging.PageSize(12)
.Style(GridPagerStyles.NextPreviousAndInput)
.Position(GridPagerPosition.Bottom)
)
.ClientEvents(e => e
.OnRowDataBound(\"Expand\")
.OnRowSelect(\"select\")
.OnLoad(\"replaceConfirmation\")
)
.RowAction(row =>
{
if (row.Index == 0)
{
row.DetailRow.Expanded = true;
}
})
.Editable(editing => editing.Mode(GridEditMode.PopUp))
.Selectable()
.Sortable()
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。