我是MVC 4的新手。我陷入困境,需要一些建议来解决问题。问题场景是:
我在局部视图中渲染WebGrid,WebGrid格式如下:
IEnumerable集合与WebGrid绑定。绑定WebGrid的视图是:
@{
MIS.Areas.AdminModule.Models.AdminModuleViewModels.Module_UserGrp_Permission allPermissions = new MIS.Areas.AdminModule.Models.AdminModuleViewModels.Module_UserGrp_Permission();
}
@{
var grid = new WebGrid(Model, canPage: true, rowsPerPage: 10, selectionFieldName: "selectedRow", ajaxUpdateContainerId: "Title");
grid.Pager(WebGridPagerModes.NextPrevious);}
<div id="gridContent">
@grid.GetHtml(tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
selectedRowStyle: "select",
columns: grid.Columns(
grid.Column(header: "Select",
format: @<input class="select" id="assignChkBx" name="assignChkBx" type="checkbox" @allPermissions.intMenuId/>),
grid.Column(header: "MenuId", format: (item) => item.intMenuId, style: "description"),
grid.Column(header: "Menu", format: (item) => item.strMenuName, style: "description", canSort: true),
grid.Column(header: "Add", format: @<text><input name="Add" type="checkbox" @(item.boolAddPer == true ? "Checked" : null) id="chkboxIsActiveAdd" /></text>),
grid.Column(header: "Edit", format: @<text><input name="Edit" type="checkbox" @(item.boolEditPer == true ? "Checked" : null) id="chkboxIsActiveEdit" /></text>),
grid.Column(header: "Delete", format: @<text><input name="Delete" type="checkbox" @(item.boolDeletePer == true ? "Checked" : null) id="chkboxIsActiveDelete" /></text>),
grid.Column(header: "Grant", format: @<text><input name="Grant" type="checkbox" @(item.boolGrantPer == true ? "Checked" : null) id="chkboxIsActiveGrant" /></text>)
))
</div>
从数据库中获取数据如下(我不使用EntityFramework):
var result =来自dt.AsEnumerable()
中的列 select new Module_UserGrp_Permission
{
intMenuId = Convert.ToInt32(column["MenuId"]),
intUserGrpId = Convert.ToInt32(column["UserGrpId"]),
strMenuName = Convert.ToString(column["MenuName"]),
boolAddPer = Convert.ToBoolean(column["boolGAdd"]),
boolEditPer = Convert.ToBoolean(column["boolGEdit"]),
boolDeletePer = Convert.ToBoolean(column["boolGDel"]),
boolViewPer = Convert.ToBoolean(column["boolGView"]),
boolGrantPer = Convert.ToBoolean(column["boolGGrant"])
};
return new List<MIS.Areas.AdminModule.Models.AdminModuleViewModels.Module_UserGrp_Permission>(result);
现在问题是我必须保存此WebGrid中所有已检查/未检查的项目。 单击“保存”按钮后,我该怎么做才能保存所有值。 请提供可能的解决方案。
谢谢大家。
答案 0 :(得分:1)
由于您的所有复选框都具有相同的名称,因此您可以执行
string result = Request.Form["assignChkBx"].ToString();
控制器上的将为您提供所有已选中复选框的列表。希望这会有所帮助。
答案 1 :(得分:0)
虽然它不是一个经过编码的工作解决方案,但我已经成功地使用了一个复选框。应该足够简单,可以连接多个:ASP.NET MVC Display an HTML Table with Checkboxes to Select Row Items