MVVM范例:实现 用户列表绑定、编辑 、删除、添加及筛选功能

第一步:引入js文件

<script src="~/JavaScript/jquery-1.11.2.min.js"></script>
<script src="~/JavaScript/knockout-3.3.0.js"></script>

第二步:页面绑定语法

<div class="search clearfix">
<div class="title">年龄</div>
<div class="value">
<a href="javascript:void(0)" data-bind="click:function(){age(‘不限‘);}">不限</a>
<a href="javascript:void(0)" data-bind=" click:function(){age(‘20‘);}">20</a>
<a href="javascript:void(0)" data-bind=" click:function(){age(‘25‘);}">25</a>
<a href="javascript:void(0)" data-bind=" click:function(){age(‘30‘);}">30</a>
<a href="javascript:void(0)" data-bind=" click:function(){age(‘35‘);}">35</a>
</div>
</div>
<div class="search clearfix">
<div class="title">性别</div>
<div class="value">
<a href="javascript:void(0)" data-bind=" click:function(){sex(‘不限‘);}">不限</a>
<a href="javascript:void(0)" data-bind=" click:function(){sex(‘男‘);}">男</a>
<a href="javascript:void(0)" data-bind=" click:function(){sex(‘女‘);}">女</a>
</div>
</div>
<div>
<table class="table">
<thead>
<tr>
<th>用户名</th>
<th>性别</th>
<th>年龄</th>
<th>更新</th>
<th>删除</th>
</tr>
</thead>
<tbody data-bind="foreach:users">
<tr>
<td><input class="editinput" type="text" data-bind="value:Username" /></td>
<td><input class="editinput" type="text" data-bind="value:Sex" /></td>
<td><input class="editinput" type="text" data-bind="value:Age" /></td>
<td><input type="button" class="btn btn-default" data-bind="click:$root.UpdateUser" value="更新" /></td>
<td><input type="button" class="btn btn-default" data-bind="click:$root.RemoveUser" value="删除" /></td>
</tr>
</tbody>
</table>
</div>

<div>
<form class="form-inline" action="/User/AddUser" method="post">
<div class="form-group">
<label class="control-label">用户名:</label>
<input type="text" name="Username" class="form-control"/>
</div>
<div class="form-group">
<label class="control-label">密码</label>
<input type="text" name="Password" class="form-control" />
</div>
<div class="form-group">
<label class="control-label">年龄</label>
<input type="text" name="Age" class="form-control" />
</div>
<div class="form-group">
<label class="control-label">性别</label>
<input type="radio" class="form-control" value="男" checked="checked" name="Sex" /><label class="control-label">男</label>
<input type="radio" class="form-control" value="女" name="Sex" /><label class="control-label">女</label>
</div>
<div class="form-group">
<input type="submit" value="保存" class="btn btn-default"/>
</div>
</form>
</div>

第三步:js

<script type="text/javascript">
function UserViewModel(Username,Sex,Age) {
var self = this;
self.Username = Username;
self.Sex = Sex;
self.Age = Age;
}

function ViewModel() {
var self = this;
self.age = ko.observable("不限");
self.sex = ko.observable("不限");
self.users = ko.observableArray();
//删除用户
self.RemoveUser = function (user) {
$.post("/User/Delete", { user: user }, function (data) {
if (data == "True") {
self.users.remove(user);
}
else {
WarningDialog("删除失败!");
}
})
}
//更新用户
self.UpdateUser = function (user) {
$.post("/User/Update", { user: user }, function (data) {
if (data == "False") {
WarningDialog("更新失败");
}
})
}

ko.computed(function () {
$.getJSON("/User/GetUserLsit", { age: self.age(), sex: self.sex() }, function (data) {
self.users.removeAll();
$.each(data, function (index, value) {
self.users.push(data[index]);
})
});
});

}

$(function () {
ko.applyBindings(new ViewModel());
});

</script>

第四步:控制器处理

//查询信息列表
public ActionResult Index()
{
return View();
}

/// <summary>
/// 查询用户列表
/// </summary>
/// <returns></returns>
public JsonResult GetUserLsit()
{
using (var db = DbContext.CreateInstance())
{
var list = db.GetList<User>();
if (Request.QueryString["sex"] != null && Request.QueryString["sex"] != "不限")
{
list = list.Where(s=>s.Sex.Contains(Request.QueryString["sex"]));
}
if (Request.QueryString["age"] != null && Request.QueryString["age"] != "不限")
{
list= list.Where(a => a.Age <= Convert.ToInt16(Request.QueryString["age"]));
}
return Json(list, "application/json", Encoding.UTF8);
}
}

/// <summary>
/// 删除用户
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public bool Delete(User user)
{
bool isSuccess = false;
using (var db=DbContext.CreateInstance())
{
if (user != null) {
if (db.Delete(user))
{
isSuccess = true;
}
}
}
return isSuccess;
}

/// <summary>
/// 修改用户信息
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public bool Update(User user)
{
bool isSuccess = false;
using (var db = DbContext.CreateInstance())
{
if (db.Update(user))
{
isSuccess = true;
}
}
return isSuccess;
}

/// <summary>
/// 新增用户
/// </summary>
/// <param name="fc"></param>
/// <returns></returns>
public ActionResult AddUser(FormCollection fc)
{
using (var db = DbContext.CreateInstance())
{
var user = new User();
user.Password = fc["Password"].Trim();
user.Username = fc["Username"].Trim();
user.Age =Convert.ToInt32(fc["Age"]);
user.Sex = fc["Sex"].Trim();
db.Insert(user);
}
return RedirectToAction("Index");
}

时间: 2024-10-31 00:25:21

MVVM范例:实现 用户列表绑定、编辑 、删除、添加及筛选功能的相关文章

Android 实现用户列表信息滑动删除功能和选择删除功能

在项目开发过程中,常常需要对用户列表的信息进行删除的操作.Android中常用的删除操作方式有两种 ,一种就是类似微信的滑动出现删除按钮方式,还有一种是通过CheckBox进行选择,然后通过按钮进行删除的方式.本来的实例集成上述的两种操作方式来实现用户列表删除的效果. 设计思路:在适配器类MyAdapter一个滑动删除按钮显示或隐藏的Map,一个用于CheckBox是否选中的Map和一个与MainAcitivyt进行数据交互的接口ContentsDeleteListener,同时该接口包含两个方

vue的表单编辑删除,保存取消功能

过年回来第一篇博客,可能说的不是很清楚,而且心情可能也不是特别的high,虽然今天是元宵,我还在办公室11.30在加班,但就是想把写过的代码记下来,怕以后可能真的忘了.(心将塞未塞,欲塞未满) VUE+ElementUI 的表单编辑,删除,保存,取消功能 VUE的表单 <el-form :label-position="labelPosition" label-width="120px" :model="form" ref="fo

Android 实现用户列表信息的功能,然后选择删除幻灯片删除功能

在项目开发过程中.经常须要对用户列表的信息进行删除的操作.Android中经常使用的删除操作方式有两种 .一种就是类似微信的滑动出现删除button方式,另一种是通过CheckBox进行选择.然后通过button进行删除的方式.本来的实例集成上述的两种操作方式来实现用户列表删除的效果. 设计思路:在适配器类MyAdapter一个滑动删除button显示或隐藏的Map,一个用于CheckBox是否选中的Map和一个与MainAcitivyt进行数据交互的接口ContentsDeleteListen

linux创建目录允许组用户创建自己的文件,其他组用户访问和编辑,不能删除

测试组权限Sgid创建kaifadata目录,允许组用户在目录下创建自己的文件,允许其他用户访问和编辑,不允许删除1.创建三个用户 li wang zhang[[email protected] ~]# useradd li[[email protected] ~]# useradd wang[[email protected] ~]# useradd zhang 2.创建组 kaifa[[email protected] ~]# groupadd kaifa 3.添加用户到 kaifa组[[e

mysql查看用户列表,查看用户授权,创建用户授权,删除用户

查看用户列表select from host,user,password from mysql.user; 查看授权show grants for [email protected]; 建用户授权grant all privileges on . to [email protected] identified by '123456'; 删除用户delete from mysql.user user='root'delete from mysql.user where user='root' an

Vue电商后台管理系统项目第3篇-首页用户列表增删改查功能

前言 由于之前的作者没有再更新这个后台管理系统项目的文章了,我想着把它的项目重头到位做一遍,把剩下的文章写完,把这个项目记录完整,以后遇到类似的后台管理系统项目,可以快速复习一些知识点. 新的项目地址:https://github.com/C4az6/vue_manage_system 添加用户 这个操作在用户列表页面,所以路由不用再进行 处理了. 基于单文件组件: 添加事件绑定--弹出新增用户对话框 添加dialog对话框 Element-UI组件>dialog对话框>自定义内容>表单

利用Excel导入用户列表(POI)

1.jsp页面的代码(和上一个导出的实例是同一个) <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>用户管理</title> <%@incl

夺命雷公狗---Redis---6-案例操作2(用户列表页,实现分页显示已经关注功能)

redis.php(公共文件) <?php $redis = new Redis(); $redis -> connect('localhost',6379); $redis -> auth('123456');//因为我修改了配置文件的密码是123456 login.php(登录页面) <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>&

linux 查看当前用户id、whoami用户列表、用户组、用户权限/etc/passwd、/etc/group、/etc/shadow以及切换用户身份、su、sudo、/etc/sudoers

一.查看当前用户之id.whoami 命 令:id 功能说明:查看显示目前登陆账户的uid和gid及所属分组及用户名 语 法:id [-gGnru][--help][--version][用户名称] 补充说明:id会显示用户以及所属群组的实际与有效ID.若两个ID相同,则仅显示实际ID.若仅指定用户名称,则显示目前用户的ID. 这个命令在溢出时经常用到,查看是不是溢出root成功,执行一下id命令,显示uid=0,则成功了. 参 数: -g或--group 显示用户所属群组的ID. -G或--g