一丶在model文件夹中新建类
//所选节点Id
private string selectNodeId;
//所选节点名称
private string selectNodeName;
//统计类型
private string statType;
//数据类型
private string type;
//时间
private DateTime dt = DateTime.Now;
//开始时间
private DateTime bt = DateTime.Now;
//结束时间
private DateTime et = DateTime.Now;
//页面URL地址
private string pageUrl;
//单位
private string unit;
/// <summary>
/// 所选节点Id
/// </summary>
public string SelectNodeId
{
get { return selectNodeId; }
set { selectNodeId = value; }
}
/// <summary>
/// 所选节点名称
/// </summary>
public string SelectNodeName
{
get { return selectNodeName; }
set { selectNodeName = value; }
}
/// <summary>
/// 统计类型
/// </summary>
public string StatType
{
get { return statType; }
set { statType = value; }
}
/// <summary>
/// 类型
/// </summary>
public string Type
{
get { return type; }
set { type = value; }
}
/// <summary>
/// 时间
/// </summary>
public DateTime Dt
{
get { return dt; }
set { dt = value; }
}
/// <summary>
/// 开始时间
/// </summary>
public DateTime Bt
{
get { return bt; }
set { bt = value; }
}
/// <summary>
/// 结束时间
/// </summary>
public DateTime Et
{
get { return et; }
set { et = value; }
}
/// <summary>
/// 页面URL地址
/// </summary>
public string PageUrl
{
get { return pageUrl; }
set { pageUrl = value; }
}
/// <summary>
/// 单位
/// </summary>
public string Unit
{
get { return unit; }
set { unit = value; }
}
二丶新建控制器BasesController
/// <summary>
/// 获取当前页面地址
/// </summary>
/// <returns>页面地址</returns>
public string GetPageUrl()
{
var pageUrl = System.Web.HttpContext.Current.Request.FilePath;
return pageUrl != null ? pageUrl.ToString() : string.Empty;
}
/// <summary>
///保存配置
/// </summary>
/// <param name="pageUrl"></param>
/// <param name="settingName"></param>
/// <param name="settingValue"></param>
/// <returns></returns>
public ContentResult ProcessData_SaveSettings(string pageUrl, string settingName, string settingValue)
{
//获取url的MD5值
var urlMD5 = ProcessData_Url(pageUrl);
// 判断更新或添加
var isExit = ProcessData_IsExit(pageUrl, settingName);
//创建Model
var sysSetting = ProcessData_SettingModel(urlMD5, settingName, settingValue, isExit.Id);
var result = InvokeAPI_COM_Setting_Add(sysSetting);
return Content(result.ToString());
}
/// <summary>
/// 根据地址获取页面所有配置
/// </summary>
/// <param name="pageUrl">页面地址</param>
/// <returns></returns>
public List<COM_SettingModel> ProcessData_GetPageSetting(string pageUrl)
{
//获取url的MD5值
var urlMD5 = ProcessData_Url(pageUrl);
var settings = InvokeAPI_COM_Setting_GetBysystemIduserId();
settings = settings.Where(p => p.pageUrl == urlMD5).ToList();
return settings;
}
辅助方法:
/// <summary>
/// 获取地址的MD5值
/// </summary>
/// <param name="parentUrl"></param>
/// <returns></returns>
private string ProcessData_Url(string parentUrl)
{
MD5 md = MD5CryptoServiceProvider.Create();
byte[] hash;
UTF8Encoding enc = new UTF8Encoding();
byte[] buffer = enc.GetBytes(parentUrl == null ? "" : parentUrl);
hash = md.ComputeHash(buffer);
StringBuilder sb = new StringBuilder();
foreach (byte b in hash)
sb.Append(b.ToString("x2"));
return sb.ToString();
}
/// <summary>
/// 配置Model
/// </summary>
/// <param name="pageUrl"></param>
/// <param name="settingName"></param>
/// <param name="settingValue"></param>
/// <returns></returns>
private COM_SettingModel ProcessData_SettingModel(string pageUrl, string settingName, string settingValue, string Id)
{ //创建Model
var sysSetting = new COM_SettingModel()
{
systemId = USER.SystemID,
userId = USER.UserName,
pageUrl = pageUrl,
type = settingName,
value = settingValue,
memo = "",
};
if (string.IsNullOrEmpty(Id))
{
sysSetting.Id = Guid.NewGuid().ToString();
}
else
{
sysSetting.Id = Id;
}
return sysSetting;
}
/// <summary>
/// 判断配置是否存在
/// </summary>
/// <param name="pageUrl"></param>
/// <param name="settingName"></param>
/// <returns></returns>
private COM_SettingModel ProcessData_IsExit(string pageUrl, string settingName)
{
var settings = ProcessData_GetPageSetting(pageUrl);
settings = settings.Where(p => p.type == settingName).ToList();
if (settings.Any())
return settings.First();
else
return new COM_SettingModel();
}
三丶在要保存页面状态的类中继承新建的BasesController类
/// <summary>
/// 保存状态
/// </summary>
/// <returns></returns>
public BaseParameterModel ProcessData_GetQueryTerms()
{
var model = new BaseParameterModel();
//获取页面地址
var pagrUrl = GetPageUrl();
model.PageUrl = pagrUrl;
//获取页面配置
var settings = ProcessData_GetPageSetting(pagrUrl);
var btSettings = settings.Where(p => p.type == "test5").ToList();
if (btSettings.Any())
{
if (btSettings[0].value!="")
{
var statTime = btSettings.First().value;
model.Type = statTime;
}
}
else
{
model.Bt = DateTime.Now;
}
return model;
}
四丶视图代码示例
五丶js代码
$(function () {
//注册事件
SaveSettings();//下拉框数据绑定
GetTime();//根据时间范围查询
})
//状态保存
function GetTime() {
$(".btn_GetPeo").click(function () {
var Username = document.getElementById("test5").value;
{
var obj = new Object();
obj["name"] = $("#test5").val();
var Time = obj["name"].split(' - ');
var beginTime = Time[0];
var endTime = Time[1];
obj["beginTime"] = beginTime;
obj["endTime"] = endTime;
LoadData("?beginTime=" + obj["beginTime"]+"&endTime=" + obj["endTime"])
SaveSettings()//状态保存
}
})
}
//状态保存
function SaveSettings(pageUrl, settingName, settingValue) {
var Username = document.getElementById("test5").value;
var pageUrl = $("#PageUrl").val();
var settingName = "test5";
var settingValue = $("#test5").val();
// 提交保存
$.ajax({
cache: true,
type: "POST",
url: "../../Bases/ProcessData_SaveSettings",
data: { pageUrl: pageUrl, settingName: settingName, settingValue: settingValue },
async: false,
error: function (result) {
//alert("保存失败");
},
success: function (result) {
//alert("保存成功");
}
});
}