简易MVC网格视图示例

在没有控件许可的情况下,可以使用HTMLJQuery和MVC来创建一个简单的网格视图。以下是创建过程的详细步骤。

步骤1:创建MVC3项目

首先,创建一个MVC 3项目,并为数据创建一个模型类。

namespace MVCSimpleGrid.Models { public class EmployeeModel { public int EmpId { get; set; } public string EmployeeName { get; set; } public string EmployeeDep { get; set; } } }

步骤2:创建动作方法和支持功能

接下来,创建一个动作方法和支持功能。

namespace MVCSimpleGrid.Controllers { public class HomeController : Controller { static List<EmployeeModel> _lstEmployee = new List<EmployeeModel>(); public ActionResult Index() { _lstEmployee = GetEmployees(); return View(_lstEmployee); } private List<EmployeeModel> GetEmployees() { List<EmployeeModel> _pvtList = new List<EmployeeModel>(); // 创建员工数据 _pvtList.Add(new EmployeeModel { EmpId = 1, EmployeeName = "员工1", EmployeeDep = "部门1" }); _pvtList.Add(new EmployeeModel { EmpId = 2, EmployeeName = "员工2", EmployeeDep = "部门2" }); _pvtList.Add(new EmployeeModel { EmpId = 3, EmployeeName = "员工3", EmployeeDep = "部门3" }); _pvtList.Add(new EmployeeModel { EmpId = 4, EmployeeName = "员工4", EmployeeDep = "部门4" }); return _pvtList; } } }

步骤3:创建视图表示网格

创建视图时,确保每个字段的ID都是唯一的,并且与模型的一个组件相关。

@model IEnumerable<MVCSimpleGrid.Models.EmployeeModel> @{ ViewBag.Title = "Index"; } <div id="divResult"> <h2>简易MVC网格视图</h2> <table> <tr> <th>员工ID</th> <th>员工姓名</th> <th>员工部门</th> <th>操作</th> </tr> @foreach (var m in Model) { <tr> <td>@m.EmpId</td> <td> <div id="divEmpName-@m.EmpId.ToString()" class="visible">@m.EmployeeName</div> <input id="txtEmpName-@m.EmpId.ToString()" type="text" class="hide" value="@m.EmployeeName.ToString()" /> </td> <td> <div id="divEmpDep-@m.EmpId.ToString()" class="visible">@m.EmployeeDep</div> <input id="txtEmpDep-@m.EmpId.ToString()" type="text" class="hide" value="@m.EmployeeDep.ToString()" /> </td> <td> <button id="btnEdit-@m.EmpId.ToString()" class="visible" onclick="ShowEdit(@m.EmpId); return false;">编辑</button> <button id="btnSave-@m.EmpId.ToString()" class="hide" onclick="SaveEdit(@m.EmpId); return false;">保存</button> </td> </tr> } </table> </div>

步骤4:JQuery部分

创建脚本来处理按钮的函数。

<script type="text/javascript"> function ShowEdit(par) { $("#divEmpName-" + par).attr("class", "hide"); $("#txtEmpName-" + par).attr("class", "visible"); $("#divEmpDep-" + par).attr("class", "hide"); $("#txtEmpDep-" + par).attr("class", "visible"); $("#btnEdit-" + par).attr("class", "hide"); $("#btnSave-" + par).attr("class", "visible"); } function SaveEdit(par) { $("#divEmpName-" + par).attr("class", "visible"); $("#txtEmpName-" + par).attr("class", "hide"); $("#divEmpDep-" + par).attr("class", "visible"); $("#txtEmpDep-" + par).attr("class", "hide"); $("#btnEdit-" + par).attr("class", "visible"); $("#btnSave-" + par).attr("class", "hide"); var _empName = $("#txtEmpName-" + par).val(); var _empDep = $("#txtEmpDep-" + par).val(); var url = '@Url.Action("Index","Home")'; $.post(url, { Id: par, empName: _empName, empDep: _empDep }, function (data) { $("divResult").html(data); }); } </script>

除了编写代码部分,还需要实现支持SaveEdit()的Ajax版本的Index动作方法。

[HttpPost] public ActionResult Index(int Id, string empName, string empDep) { _lstEmployee[Id - 1].EmployeeName = empName; _lstEmployee[Id - 1].EmployeeDep = empDep; return View(_lstEmployee); }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485