记录最近操作

博客介绍了模块操作日志记录及最近操作显示的实现方法。先给模块自定义属性,通过控制器方法将操作信息存入日志表,再连表查询模块表和日志表获取记录。最后在页面用盒子显示最近操作,通过js代码控制显示数量,最多显示最近十条。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先给你的要操作的模块index自定义属性,从1开始依次叠加,如下所示

   <li class="sidebar-item" id="" index="1">
 <a class="sidebar-link has-arrow waves-effect waves-dark" href="javascript:void(0)">
 <i class="icon-Car-Wheel"></i><span class="hide-menu">我的首页 </span></a></li>
 <li class="sidebar-item" id="" index="2">
 <a class="sidebar-link has-arrow waves-effect waves-dark" href="javascript:void(0)">
 <i class="icon-Mailbox-Empty"></i><span class="hide-menu">我的工作</span></a></li>

//页面加载事件
        $(function () {
然后获取到上面的模块
var sidebarnav=document.getElementById("sidebarnav").getElementsByTagName("li");
再for循环一遍它的长度
            for (var i = 0; i <sidebarnav.length; i++) {
                给上面模块点击事件
                sidebarnav[i].onclick=function(){
                点击上面的模块获取到index自定义属性
                    var index=this.getAttribute("index");
            然后post提交,到控制器写方法,Main是控制器名,RiZhi是方法名,然后回填到页面
                    $.post("/Main/RiZhi",
                         EmployeeID是操作人的id
                        {Index:index,EmployeeID:EmployeeID},
                        function(date){
                            return;
                        });
                }
            }
        });

控制器方法如下,S_SysLog是日志表,记录什么人使用的什么模块和时间,如下是我的关系表
权限表就是放操作模块的表
在这里插入图片描述
public ActionResult RiZhi(string Index,int EmployeeID)
{
try
{
New一个S_SysLog日志表
S_SysLog SysLog = new S_SysLog();
将接受到的index字符串转为int类型
int Indexa = Convert.ToInt32(Index);
接受页面传送的EmployeeID
SysLog.EmployeeID = EmployeeID;
将上面的int类型记录到模块上
SysLog.JurisdictionID = Indexa;
点击模块记录当前的时间
SysLog.UseTime = DateTime.Now.ToString(“yyyy-MM-dd HH:mm:ss”);
新增保存到数据库
myModel.S_SysLog.Add(SysLog);
myModel.SaveChanges();
如下图所示,是存到数据库日志表的数据
在这里插入图片描述
}
catch (Exception)
{
}
return Json("", JsonRequestBehavior.AllowGet);
}
然后再连表查询模块表和日志表获取到所有的记录,如下
public ActionResult SelectSR(int EmployeeID)
{
声明CountSr存放所有的记录
var CountSr = (from tbSysLog in myModel.S_SysLog
join tbJurisdiction in myModel.S_Jurisdiction on tbSysLog.JurisdictionID
equals tbJurisdiction.JurisdictionID
where tbSysLog.EmployeeIDEmployeeID
倒叙的排序
orderby tbSysLog.SysLogID descending
select tbJurisdiction.Jurisdiction).ToList();
将所有的记录返回到页面
return Json(CountSr, JsonRequestBehavior.AllowGet);
}
然后到页面上给一个盒子来显示最近的操作,如下图所示,你需要显示几个操作就在里面添加多少个li标签再到li标签里面放一个盒子
在这里插入图片描述
再到下面写js代码,如下
$(function () {
SelectSR是上面写的连表查询方法名
$.post(“SelectSR”, {EmployeeID:EmployeeID},
function(Data) {
输出一下数据获取到数据的长度
console.log(Data);
如果数据长度等于0,那么隐藏
if (Data.length
0 ) {
var Zjcz=document.getElementById(“ZJCZ”);
Zjcz.style.display=“none”;
}
For循环一遍,因为我这里给的10个盒子,所以如果i等于十,那么返回数据,
for (var i = 0; i < Data.length; i++) {
if (i==10) {
return;
}
if(i<=9){
如果i小于等于9,声明zjcz获取到ZJCZ里面的div
var zjcz=document.getElementById(“ZJCZ”).getElementsByTagName(“div”);
再for循环一遍,j小于zjcz的长度
for (var j = 0; j <zjcz.length; j++) {
如果data数据不等于undefined,那么数据返回到页面,如果数据等于undefined那么隐藏它的div,这里按照上面给的div数量来写,因为我上面给的是个div,那么我这里就是0到9依次往下面写
if (Data[0]!=undefined) {
zjcz[0].innerHTML=Data[0];
}else {
zjcz[0].style.display=“none”;
}
……
if (Data[9]!=undefined) {
zjcz[9].innerHTML=Data[9];
}else {
zjcz[9].style.display=“none”;
}
}
}
}
})
});
下面运行演示一下,如图这是没有操作时候的样子,左边是操作模块,右边是显示到页面的盒子
在这里插入图片描述
下面我点击五条,如下图所示,那么他就只显示五条数据
在这里插入图片描述
现在我点击十条以上,如下图所示,它只显示最近的十条,这样最近操作到这里就完成了

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值