ASP.NET中AJAX异步请求刷新用户实现table的拼接以及用户属性更改禁用使用EF实体数据模型(源码附项目)

ASP.NET中AJAX异步请求刷新用户实现table的拼接以及用户属性更改和账号禁用

先看效果吧:
在这里插入图片描述

1、创建页面结构

注意引入jquery和js文件

<div>
    <table class="pure-table pure-table-striped pure-table-bordered">
         <thead>
             <tr>
               <th>编号</th>
               <th>登录账号</th>
               <th>用户姓名</th>
               <th>联系电话</th>
               <th>用户状态</th>
               <th>注册日期</th>
               <th>所属角色</th>
               <th>操作</th>
             </tr>
         </thead>
         <tbody>
             
         </tbody>
     </table>
 </div>
 <script src="../Assets/js/jquery-3.4.1.min.js"></script>
 <script src="js/userManager.js"></script>
2、添加实体数据模型

在这里我用的是EF数据模型,也可以用DBHelper实现
点击新建项->数据->ADO.NET实体数据模型
在这里插入图片描述
来自数据库的EF设计器
在这里插入图片描述
选择新建连接,选择服务器名和数据库名
在这里插入图片描述
选择要添加的表、视图、存储过程和函数
在这里插入图片描述

3、安装Json包

在这里插入图片描述

4、添加一般处理程序,对数据进行更改和查询
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using zonghexiangmu.BLL;
using zonghexiangmu.DAL;

namespace zonghexiangmu.admin.handlers
{
    /// <summary>
    /// userManagerHandler
    /// </summary>
    public class userManagerHandler : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            string json = "";
            if (context.Request["rl"] != null)
            {
                //做投影操作
                var list = RolesService.SelectAll().Select(u => new {
                    RoleId = u.RoleId,
                    Name = u.Name
                }).ToList();
                //安装Newtonsoft.Json包,转换数据
                json = JsonConvert.SerializeObject(list);
            }
            else
            {
                string rid = context.Request["rid"];
                string uid = context.Request["uid"];
                if (rid != null && uid != null)
                {
                    //更改用户角色
                    int roleId = Convert.ToInt32(rid);
                    int userId = Convert.ToInt32(uid);
                    bool jg=BLL.UserService.ChangeRole(userId, roleId);
                }
                else if (uid != null)
                {
                    //启用或禁用用户
                    int userid = Convert.ToInt32(uid);
                    bool jg=BLL.UserService.RemoveUser(userid);
                }
                var list = UserService.QueryAllUsers().Select(u => new
                {
                    UserId = u.UserId,
                    LoginId = u.LoginId,
                    LoginPwd = u.LoginPwd,
                    UserName = u.UserName,
                    RoleId = u.RoleId,
                    Phone = u.Phone,
                    UserStatus = u.UserStatus==0?"禁用":"启用",
                    DateCreated = string.Format("{0:D}", u.DateCreated)
                }).ToList();
                json = JsonConvert.SerializeObject(list);
            }
            

            context.Response.ContentType = "application/json";
            context.Response.Write(json);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
5、定义ajax,实现刷新、修改和禁用效果
//一般处理程序的路径url
var url = "handlers/userManagerHandler.ashx";
$(function () {
    var r = Math.random();
    $.post(url + "?" + r, function (jsonData) {
        loadData(jsonData)
    }, "json");
});
//获取用户信息并生成表格数据
function loadData(data) {
    var r = Math.random();
    //查询角色数据
    $.post(url + "?" + r, { rl: 0 }, function (jsonData) {
        $("tbody").empty();
        //生成表格数据
        for (var i = 0; i < data.length; i++) {
            var user = data[i];
            var status = user.UserStatus == '禁用' ? '启用' : '禁用';
            var $tr = $("<tr></tr>");
            $tr.append("<td>" + user.UserId + "</td>");
            $tr.append("<td>" + user.LoginId + "</td>");
            $tr.append("<td>" + user.UserName + "</td>");
            $tr.append("<td>" + user.Phone + "</td>");
            $tr.append("<td>" + user.UserStatus + "</td>");
            $tr.append("<td>" + user.DateCreated + "</td>");
            //生成角色信息下拉列表框
            var $rolesTd = $("<td></td>");
            var $roles = $("<select id='ddlRoles" + user.UserId + "'></select>");
            for (var j = 0; j < jsonData.length; j++) {
                var role = jsonData[j];
                if (role.RoleId == user.RoleId) {
                    $roles.append("<option value='" + role.RoleId + "' selected='true'>" + role.Name + "</option>");
                } else {
                    $roles.append("<option value='" + role.RoleId + "'>" + role.Name + "</option>");
                }
            }
            $rolesTd.append($roles);
            $rolesTd.append("<input type='button' class='bt button-default pure-button pure-button-primary' οnclick='btnChange_click(\"#ddlRoles" + user.UserId + "\"," + user.UserId + ")' value='更改' />");
            $tr.append($rolesTd);
            if (user.RoleId != 1) {
                $tr.append("<td><input  type='button' class='button-default pure-button tools-button' οnclick='btnRemove_click(this," + user.UserId + ")' value='" + status + "' /></td>");
            }
            else {
                $tr.append("<td> - </td>");
            }

            $("tbody").append($tr);
        }
    }, "json");
}
//更改用户角色
function btnChange_click(ddl, userId) {
    var roleId = $(ddl).val();
    var r = Math.random();
    $.post(url + "?" + r, { uid: userId, rid: roleId }, function (jsonData) {
        if (jsonData != "") {
            alert('修改成功');
            loadData(jsonData);
        }
    }, "json");
}
//启用或禁用用户
function btnRemove_click(btn, userId) {
    var r = Math.random();
    var lbl = ($(btn).val() == "禁用" ? "启用" : "禁用");
    $(btn).val(lbl);
    $.post(url + "?" + r, { uid: userId }, function (jsonData) {
        if (jsonData!="") {
            alert('修改成功');
            loadData(jsonData);
        }
    }, "json");
}

到此就结束啦,快去练习一下吧!欢迎大佬和小Monkey沟通。
在这里插入图片描述

感谢大佬指正 小Monkey
如果你觉得有用的话,就留个赞吧!蟹蟹

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猴麦麦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值