asp.net-mvc-3 – 在MVC3中对Webgrid行进行内联编辑
发布时间:2020-05-25 09:13:23 所属栏目:asp.Net 来源:互联网
导读:public class UserDetailsModel { public int ID { get; set; } public string LoginID { get; set; } public string FirstName { get; set; } public string LastName { get;
public class UserDetailsModel
{
public int ID { get; set; }
public string LoginID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string IsDeleted { get; set; }
public DateTime CreatedOn { get; set; }
}
控制器: public ActionResult Index()
{
object model = obj.getUserList();
return View(model);
}
public ActionResult Delete(int id)
{
BAL_obj.deleteUser(id);
object model = obj.getUserList();
return View("Index",model);
}
Index.cshtml: @model IEnumerable<WebGrid1App.Models.UserDetailsModel>
@{
WebGrid grid = new WebGrid(Model);
}
<h2>People</h2>
@grid.GetHtml(
headerStyle: "headerStyle",tableStyle: "tableStyle",alternatingRowStyle: "alternateStyle",fillEmptyRows: true,mode: WebGridPagerModes.All,firstText: "<< First",previousText: "< Prev",nextText: "Next >",lastText: "Last >>",columns: new [] {
grid.Column("ID",header: "ID"),grid.Column("LoginId",header:"LoginID"),grid.Column("FirstName",canSort: false),grid.Column("LastName"),grid.Column("CreatedOn",header: "CreatedOn",format: p=>p.CreatedOn.ToShortDateString()
),grid.Column("",header: "Actions",format: @<text>
@Html.ActionLink("Edit","Edit",new { id=item.ID} )
|
@Html.ActionLink("Delete","Delete",new { id=item.ID} )
</text>
)
})
我已经完成了删除操作. 会有编辑按钮.单击它时,行将是可编辑的. 我想做内联编辑. 解决方法你可以使用AJAX.首先将webGrid包装成一个html表单,以便编辑记录:@using (Html.BeginForm("Update",null,FormMethod.Post,new { @class = "updateForm" }))
{
@grid.GetHtml(
headerStyle: "headerStyle",columns: new[]
{
grid.Column("ID",format: p=>p.CreatedOn.ToShortDateString()
),format: @<text>
@Html.ActionLink("Edit",new { id = item.ID },new { @class = "edit" })
|
@Html.ActionLink("Delete",new { id = item.ID })
</text>
)
}
)
}
然后你可以有2个部分,一个用于编辑,一个用于显示单个记录. EditUserDetailsModel.cshtml: @model UserDetailsModel
<td>@Html.EditorFor(x => x.ID)</td>
<td>@Html.EditorFor(x => x.LoginID)</td>
<td>@Html.EditorFor(x => x.FirstName)</td>
<td>@Html.EditorFor(x => x.LastName)</td>
<td>@Html.EditorFor(x => x.CreatedOn)</td>
<td>
<button type="submit">Update</button>
</td>
DisplayUserDetailsModel: @model UserDetailsModel
<td>@Html.DisplayFor(x => x.ID)</td>
<td>@Html.DisplayFor(x => x.LoginID)</td>
<td>@Html.DisplayFor(x => x.FirstName)</td>
<td>@Html.DisplayFor(x => x.LastName)</td>
<td>@Html.DisplayFor(x => x.CreatedOn)</td>
<td>
@Html.ActionLink("Edit",new { id = Model.ID },new { @class = "edit" })
|
@Html.ActionLink("Delete",new { id = Model.ID })
</td>
然后我们可以有相应的控制器动作: public ActionResult Edit(int id)
{
UserDetailsModel model = repository.Get(id);
return PartialView("EditUserDetailsModel",model);
}
[HttpPost]
public ActionResult Update(UserDetailsModel model)
{
repository.Update(model);
return PartialView("DisplayUserDetailsModel",model);
}
最后是使这个活着的javascript: $('table').on('click','.edit',function () {
$.ajax({
url: this.href,type: 'GET',cache: false,context: $(this).closest('tr'),success: function (result) {
$(this).html(result);
}
});
return false;
});
$('.updateForm').on('submit',function () {
$.ajax({
url: this.action,type: this.method,data: $(this).serialize(),context: $('input',this).closest('tr'),success: function (result) {
$(this).html(result);
}
});
return false;
}); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 页面存在时的404 – IIS 5,ASP.NET 4.0
- asp.net – 使用IIS7应用程序请求路由修改标头
- asp.net – .net MVC将linq数据从控制器传递到视图
- asp.net – 在.net应用程序中使用jquery禁用回发上的按钮
- ASP.NET Web.config转换将无法在安装程序中使用
- asp.net – HttpContext.Current.User为空,即使Windows身份
- 如何配置IIS 7以使用子目录作为默认文档?
- asp.net-mvc – 权限设计
- asp.net – jquery getJson没有将任何值传递给控制器
- 将NUnit添加到ASP.NET MVC测试框架的选项
推荐文章
站长推荐
- asp.net – 如何将IIS Developer Express切换到“
- asp-classic – 如何在经典ASP中使用VBScript生成
- asp.net-mvc – WebForms和MVC可以存在于一个项目
- asp.net-core – 如何使.NET Core类库从.NET 4.6
- 使用ASP.NET MVC3中的JavaScriptSerializer转义引
- .net – 我应该在HttpCookie.Expires和HttpCache
- asp.net – 如何.NET网站隐藏它们的文件的.aspx扩
- 将链接列添加到ASP.NET GridView
- asp.net – 没有参数的WebResource.axd请求 – 这
- asp.net-mvc-3 – DropDownListFor – 不选择“S
热点阅读
