Asp.net mvc 3 MVC3Razor-如何使用隐藏字段来维护页面请求之间复选框的状态?
我使用隐藏字段来维护页面请求之间复选框的状态,除非它不起作用。因此,当我点击我的webgrid转到接下来的15条记录时,它会忘记选中了哪些复选框 索引视图Asp.net mvc 3 MVC3Razor-如何使用隐藏字段来维护页面请求之间复选框的状态?,asp.net-mvc-3,razor,checkbox,hidden-field,Asp.net Mvc 3,Razor,Checkbox,Hidden Field,我使用隐藏字段来维护页面请求之间复选框的状态,除非它不起作用。因此,当我点击我的webgrid转到接下来的15条记录时,它会忘记选中了哪些复选框 索引视图 @model IEnumerable<UserManager.Models.vw_UserManager_Model> @{ ViewBag.Title = "User Manager Dashboard"; } @Html.ActionLink("Create New User", "CreateUser") @usin
@model IEnumerable<UserManager.Models.vw_UserManager_Model>
@{
ViewBag.Title = "User Manager Dashboard";
}
@Html.ActionLink("Create New User", "CreateUser")
@using (@Html.BeginForm())
{
<div class="webgrid-filter">
@{Html.RenderAction("_WebGridFilter", "UserManager");}
</div>
<div id="webgrid-wrapper">
@Html.Partial("~/Views/Partial/_WebGridUserManager.cshtml", Model)
</div>
<br />
}
<script type="text/javascript">
$(document).ready(function () {
// Disable checkboxs where a user is not active.
$(".webgrid-wrapper input:not(:checked)").attr("disabled", "disabled");
// Style tables.
function jQueryUIStyling() {
$('input:button, input:submit').button();
$('.webgrid-wrapper').addClass('ui-grid ui-widget ui-widget-content ui-corner-all');
$('.webgrid-title').addClass('ui-grid-header ui-widget-header ui-corner-top');
jQueryTableStyling();
} // end of jQueryUIStyling
function jQueryTableStyling() {
$('.webgrid').addClass('ui-grid-content ui-widget-content');
$('.webgrid-header').addClass('ui-state-default');
$('.webgrid-footer').addClass('ui-grid-footer ui-widget-header ui-corner-bottom ui-helper-clearfix');
} // end of jQueryTableStyling
});
</script>
<script type="text/javascript">
function filterGrid() {
var filters = getFilterVals();
$.ajax({
url: '@Url.Action("Index", "UserManager")',
type: "POST",
async: true,
dataType: "html",
data: "alfConnect=" + filters.alfConnect + "&" + "alfIntelligence=" + filters.alfIntelligence + "&" + "brad=" + filters.brad,
success: function (data) {
$('#webgrid-wrapper').empty().html(data);
// $('#webgrid-wrapper').html(data);
}
});
}
function getFilterVals() {
filters = new Object();
if ($('.webgrid-filter #chkFilterAlfIntell').is(':checked')) {
filters.alfIntelligence = 1;
}
else {
filters.alfIntelligence = 0;
}
if ($('.webgrid-filter #chkFilterAlfConn').is(':checked')) {
filters.alfConnect = 1;
}
else {
filters.alfConnect = 0;
}
if ($('.webgrid-filter #chkFilterBrad').is(':checked')) {
filters.brad = 1;
}
else {
filters.brad = 0;
}
return filters;
}
function logUserOff(url) {
var answer = confirm('Are you sure you want to save this data?')
if (answer) {
// alert(url + ": " + value);
$.ajax({
url: url,
type: "POST"
// data: value
}).done(function () {
$(this).addClass("done");
});
return true;
}
else {
return false;
}
};
</script>
@model IEnumerable
@{
ViewBag.Title=“用户管理器仪表板”;
}
@ActionLink(“创建新用户”、“创建用户”)
@使用(@Html.BeginForm())
{
@{Html.RenderAction(“_WebGridFilter”,“UserManager”);}
@Html.Partial(“~/Views/Partial/\u WebGridUserManager.cshtml”,Model)
}
$(文档).ready(函数(){
//在用户未处于活动状态时禁用复选框。
$(“.webgrid包装器输入:未(:选中)”).attr(“已禁用”、“已禁用”);
//样式表。
函数jQueryIstyling(){
$('input:button,input:submit').button();
$('.webgrid wrapper').addClass('ui-grid-ui小部件ui小部件内容ui-corner-all');
$('.webgrid title').addClass('ui-grid-header-ui小部件头ui-corner-top');
jQueryTableStyleing();
}//jQueryIstyling的结尾
函数jQueryTableStyleing(){
$('.webgrid').addClass('ui-grid-content-ui小部件内容');
$('.webgrid header').addClass('ui-state-default');
$('.webgrid-footer').addClass('ui-grid-footer ui小部件页眉ui角底ui帮助程序clearfix');
}//jQueryTableStyleing结束
});
函数filterGrid(){
var filters=getFilterVals();
$.ajax({
url:'@url.Action(“索引”,“用户管理器”),
类型:“POST”,
async:true,
数据类型:“html”,
数据:“alfConnect=“+filters.alfConnect+”&“+”alfIntelligence=“+filters.alfIntelligence+”&“+”brad=“+filters.brad,
成功:功能(数据){
$('#webgrid wrapper').empty().html(数据);
//$('#webgrid wrapper').html(数据);
}
});
}
函数getFilterVals(){
过滤器=新对象();
if($('.webgrid过滤器#chkFilterAlfIntell')。是(':checked')){
过滤器。智能=1;
}
否则{
filters.alfIntelligence=0;
}
如果($('.webgrid过滤器#chkFilterAlfConn')。是(':checked')){
filters.alfConnect=1;
}
否则{
filters.alfConnect=0;
}
如果($('.webgrid过滤器#chkFilterBrad')。是(':checked')){
filters.brad=1;
}
否则{
filters.brad=0;
}
回流过滤器;
}
函数logUserOff(url){
var answer=confirm('您确定要保存此数据吗?')
若有(答复){
//警报(url+“:”+值);
$.ajax({
url:url,
类型:“职位”
//数据:价值
}).done(函数(){
$(此).addClass(“完成”);
});
返回true;
}
否则{
返回false;
}
};
带有隐藏字段的局部视图
@model UserManager.Models.webgrid_validation
<b>@Html.Label("Select a filter: ")</b>
<br />
@Html.Label("Toggle ALF Intelligence users:")
@Html.CheckBoxFor(model => model.chkBoxAlfIntelligence, new
{
id = "chkFilterAlfIntell",
onclick = "filterGrid()",
@checked = "checked"
})
@Html.Hidden("hdnAlfIntelligence", Model.chkBoxAlfIntelligence)
@Html.Label("Toggle ALF Connect users:")
@Html.CheckBoxFor(model => model.chkBoxAlfConnect, new
{
id = "chkFilterAlfConn",
onclick = "filterGrid()",
@checked = "checked"
})
@Html.Hidden("hdnAlfConnect", Model.chkBoxAlfConnect)
@Html.Label("Toggle BRAD users:")
@Html.CheckBoxFor(model => model.chkBoxBrad, new
{
id = "chkFilterBrad",
onclick = "filterGrid()",
@checked = "checked"
})
@Html.Hidden("hdnBrad", Model.chkBoxBrad)
@model UserManager.Models.webgrid\u验证
@Label(“选择过滤器:”)
@Label(“切换ALF智能用户:”)
@CheckBoxFor(model=>model.chkBoxAlfIntelligence,新建)
{
id=“chkFilterAlfIntell”,
onclick=“filterGrid()”,
@checked=“checked”
})
@隐藏(“hdnAlfIntelligence”,Model.chkBoxAlfIntelligence)
@Label(“切换ALF连接用户:”)
@CheckBoxFor(model=>model.chkBoxAlfConnect,新建)
{
id=“chkFilterAlfConn”,
onclick=“filterGrid()”,
@checked=“checked”
})
@隐藏(“hdnAlfConnect”,Model.chkBoxAlfConnect)
@Label(“切换用户:”)
@CheckBoxFor(model=>model.chkBoxBrad,新建)
{
id=“chkFilterBrad”,
onclick=“filterGrid()”,
@checked=“checked”
})
@隐藏(“hdnBrad”,Model.chkBoxBrad)
控制器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using UserManager.Models;
namespace UserManager.Controllers
{
public class UserManagerController : Controller
{
//
// GET: /UserManager/
public ActionResult Index()
{
try
{
var model = new UserManagerTestEntities().vw_UserManager_Model;
return View(model.ToList());
}
catch (Exception ex)
{
return View(ViewBag);
}
}
[HttpPost]
public ActionResult Index(int alfConnect, int alfIntelligence, int brad)
{
List<UserManager.Models.vw_UserManager_Model> modelList = DAL.getGrid(alfConnect, alfIntelligence, brad);
switch (alfConnect)
{
case 1:
ViewData["chkBoxAlfConnect"] = 1;
break;
case 0:
ViewData["chkBoxAlfConnect"] = 0;
break;
}
switch (alfIntelligence)
{
case 1:
ViewData["chkBoxAlfIntelligence"] = 1;
break;
case 0:
ViewData["chkBoxAlfIntelligence"] = 0;
break;
}
switch (brad)
{
case 1:
ViewData["chkBoxBrad"] = 1;
break;
case 0:
ViewData["chkBoxBrad"] = 0;
break;
}
return PartialView("~/Views/Partial/_WebGridUserManager.cshtml", modelList);
}
[ChildActionOnly]
public ActionResult _WebGridFilter ()
{
UserManager.Models.webgrid_validation model = new webgrid_validation();
return PartialView("~/Views/Partial/_WebGridFilter.cshtml", model);
}
//public ActionResult _WebGridFilter(int alfConnect, int alfIntelligence, int brad)
//{
// UserManager.Models.webgrid_validation model = new webgrid_validation();
//switch (alfConnect)
//{
// case 1:
// model.chkBoxAlfConnect = true;
// break;
// case 0:
// model.chkBoxAlfConnect = false;
// break;
//}
//switch (alfIntelligence)
//{
// case 1:
// model.chkBoxAlfIntelligence = true;
// break;
// case 0:
// model.chkBoxAlfIntelligence = false;
// break;
//}
//switch (brad)
//{
// case 1:
// model.chkBoxBrad = true;
// break;
// case 0:
// model.chkBoxBrad = false;
// break;
//}
// return PartialView("~/Views/Partial/_WebGridFilter.cshtml", model);
//}
#region ajaxMethods
public ActionResult LookUpGroupName(string q, int limit)
{
try
{
//TODO: Map list to autocomplete textbox control
DAL d = new DAL();
List<string> groups = d.groups();
var GroupValue = groups
.Where(x => x.Contains(q))
.OrderBy(x => x)
.Take(limit)
.Select(r => new { group = r });
// Return the result set as JSON
return Json(GroupValue, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return View(ex.ToString());
}
}
public ActionResult LogUserOff(string userid)
{
try
{
//TODO: Map list to autocomplete textbox control
return View();
}
catch (Exception ex)
{
return View(ex.ToString());
}
}
//[HttpPost]
//public ActionResult FilterGrid(int alfConnect, int alfIntelligence, int brad)
//{
// List<UserManager.Models.vw_UserManager_Model> modelList = DAL.getGrid(alfConnect, alfIntelligence, brad);
// return PartialView("_WebGridUserManager", modelList);
//}
#endregion
#region crud
public ActionResult CreateUser()
{
//var data = new UserManager.Models.UserManagerTestEntities();
ViewBag.Message = "Create New User";
var model = new vw_UserManager_Model();
return View(model);
}
[HttpPost]
public ActionResult CreateUser (vw_UserManager_Model model)
{
int outcome = 0;
if (ModelState.IsValid)
{
//var data = new UserManager.Models.UserManagerTestEntities();
// Pass model to Data Layer
outcome = UserManager.DAL.CreateUser(model, outcome);
//data.SaveChanges();
}
if (outcome > 0) // Success
{
return RedirectToAction("showSuccess", model);
}
else // Failure
{
return RedirectToAction("showError", new { ErrorMessage = "Error" });
}
}
public ActionResult EditUser(Guid userid, string salutation, string firstname, string lastname, string password, Nullable<bool> isactive, Nullable<int> maxconcurrentusers, string email, string module, string group)
{
vw_UserManager_Model editUser = new vw_UserManager_Model();
editUser.userid = userid;
editUser.salutation = salutation;
editUser.firstname = firstname;
editUser.lastname = lastname;
editUser.password = password;
editUser.isactive = isactive;
editUser.MaxConcurrentUsers = maxconcurrentusers;
editUser.email = email;
editUser.module_name = module;
editUser.group_name = group;
return View(editUser);
}
[HttpPost]
public ActionResult EditUser(vw_UserManager_Model editUser)
{
if (ModelState.IsValid)
{
UserManager.DAL.EditUser(editUser);
}
return View();
}
public ActionResult DeleteUser(Guid userid, string username, string salutation, string firstname, string lastname, string password, bool isactive, string email, string module, string group)
{
vw_UserManager_Model DeleteUser = new vw_UserManager_Model();
DeleteUser.userid = userid;
DeleteUser.UserName = username;
DeleteUser.salutation = salutation;
DeleteUser.firstname = firstname;
DeleteUser.lastname = lastname;
DeleteUser.password = password;
DeleteUser.isactive = isactive;
DeleteUser.email = email;
DeleteUser.module_name = module;
DeleteUser.group_name = group;
return View(DeleteUser);
}
[HttpPost]
public ActionResult DeleteUser(vw_UserManager_Model deleteUser)
{
if (ModelState.IsValid)
{
UserManager.DAL.DeleteUser(deleteUser);
return RedirectToAction("showSuccess", new { SuccessMessage = "Success" });
}
return View();
}
#endregion crud
#region successErrorHandling
public ActionResult showError(List<string> ErrorMessage)
{
ViewBag.ErrorMessage = ErrorMessage[0];
return View("ErrorMessageView");
}
public ActionResult showSuccess(vw_UserManager_Model model)
{
return View("SuccessMessageeView", model);
}
#endregion
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用System.Web.Mvc;
使用UserManager.Models;
命名空间UserManager.Controllers
{
公共类UserManagerController:控制器
{
//
//获取:/UserManager/
公共行动结果索引()
{
尝试
{
var model=new UserManagerTestEntities().vw_UserManager_model;
返回视图(model.ToList());
}
捕获(例外情况除外)
{
返回视图(视图包);
}
}
[HttpPost]
公共行动结果索引(int-alfConnect、int-alfIntelligence、int-brad)
{
List modelList=DAL.getGrid(alfConnect、alfIntelligence、brad);
开关(连接)
{
案例1:
ViewData[“chkBoxAlfConnect”]=1;
打破
案例0:
ViewData[“chkBoxAlfConnect”]=0;
打破
}
开关(智能)
{
案例1:
ViewData[“CHKBOxalFinIntelligence”]=1;
打破
案例0:
ViewData[“CHKBOxalFinIntelligence”]=0;
打破
}
开关(布拉德)
{
案例1:
ViewData[“chkBoxBrad”]=1;
打破
案例0:
ViewData[“chkBoxBrad”]=0;
打破
}
返回PartialView(“~/Views/Partial/_WebGridUserManager.cshtml”,modelList);
}
[仅限儿童]
公共操作结果\u WebGridFilter()
{
UserManager.Models.webgrid_验证模型=新的webgrid_验证();