首页 技术 正文
技术 2022年11月20日
0 收藏 319 点赞 2,188 浏览 10918 个字

第一步、前台HTML页面。

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="feeClassification.aspx.cs" Inherits="Webs.pages.Parameter.feeClassification" %> <!DOCTYPE html>
<html lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>费用分类</title>
<!-- IE兼容模式 -->
<!-- 引入css样式文件 -->
<link rel="stylesheet" type="text/css" href="/content/common/css/app.v2.css?verson=<%=VersionNo %>" rel="external nofollow" >
<link rel="stylesheet" type="text/css" href="/content/common/css/info.css?verson=<%=VersionNo %>" rel="external nofollow" >
<link href="/content/common/ztree/demo.css?verson=<%=VersionNo %>" rel="external nofollow" rel="stylesheet" />
<link href="/content/common/ztree/zTreeStyle.css?verson=<%=VersionNo %>" rel="external nofollow" rel="stylesheet" />
<!--[if lt IE 9]> <script src="/content/common/js/ie/html5shiv.js?verson=<%=VersionNo %>" cache="false"></script> <script src="/content/common/js/ie/respond.min.js?verson=<%=VersionNo %>" cache="false"></script> <script src="/content/common/js/ie/excanvas.js?verson=<%=VersionNo %>" cache="false"></script> <![endif]--> <%=headAppendHtmlJavaScript() %>
</head>
<body>
<div>
<div class="margin-bottom5" style="float:left;width:40%; border: 1px solid black;" id="divTable">
<input type="hidden" id="txtCode" />
<input type="hidden" id="txtFathCode" />
<table class="tableDefault" cellpadding="0" cellspacing="0" border="1">
<tr>
<th style="width: 30%;"><span>操 作</span></th>
<td>
<input class="btn btn-s-md btn-success" id="modify" type="button" onclick="Modify();" value="修改保存" />
<input class="btn btn-s-md btn-success" id="Add" type="button" onclick="AddAway();" value="新增保存" />
<input class="btn btn-s-md btn-success" id="Del" type="button" onclick="DelAway();" value="删除节点" />
</td>
</tr>
<tr>
<th><span>分类显示</span></th>
<td style="text-align: left;">
<span id="sify_name"></span>
</td>
</tr>
<tr>
<th><span>分类名称</span></th>
<td style="text-align: left;">
<input name="classify_Name" class="form-control" style="width: 40%;" type="text" id="classify_name" />
</td>
</tr>
<tr>
<th><span>排序数值</span></th>
<td style="text-align: left;">
<input name="order_value" class="form-control" style="width: 40%;" type="text" id="order_value" />
</td>
</tr>
<tr>
<th><span>助 记 码</span></th>
<td style="text-align: left;">
<input name="code_value" class="form-control" style="width: 40%;" type="text" id="code_value" />
</td>
</tr>
</table> </div>
<!-- 页面树 -->
<div class="zTreeDemoBackground right" id="ztreeId" style="width: 40%; height: auto">
<ul id="treeDemo" class="ztree" style="width: 40%; height: auto; float: right; margin-top: 5px;"></ul>
</div> </div>
<script src="/content/common/js/ajaxRequest.js?verson=<%=VersionNo %>" type="text/javascript"></script>
<script src="/content/common/ztree/jquery.ztree.core.js?verson=<%=VersionNo %>"></script>
<%=bodyAppendHtmlJavaScript() %>
<script type="text/javascript">
var zNodes, cropId;
var messageError = "";
var jsonObject = {};
var tree = [];
//ztree配置信息
var setting = {
view: {
showIcon: true,//是否展示树图片
dblClickExpand: false,
showLine: true,
selectedMulti: false,
fontCss: { background: "write" }
},
edit: {
enable: true,
editNameSelectAll: true
},
data: {
simpleData: {
enable: true
}
},
callback: {
onClick: GetNodeAway,//节点点击事件
onExpand: GetNodeAway//节点展开折叠事件
}
};
//加载事件
$(function () {
//加载树信息
GetTreeData();
});
//处理接收数据
function GetTreeData() {
jsonPost("/wsService/PManagementHandler.ashx?type=GetFreeClassTree", jsonObject,
function (response) {
$.fn.zTree.init($("#treeDemo"), setting, response.data);
},
function () { });
}
//树图片回调事件
function showIconForTree(treeId, treeNode) {
return !treeNode.isParent;
};
//修改事件
function Modify() {
if (JudgeAway(0)) {
SaveFileDate($("#txtCode").val());
treeHandler(0);
} else { showErrorAlert(messageError); }
}
//新增事件
function AddAway() {
var lxid = 1;
if ($("#txtCode").val() == "") {
if (!confirm("确定是增加根节点菜单吗?")) return;
lxid = 2;
}
if (JudgeAway(1)) {
SaveFileDate("");
treeHandler(lxid);
} else {
showErrorAlert(messageError);
}
}
//新增--修改
function treeHandler(lxid) {
jsonPost("/wsService/PManagementHandler.ashx?type=UpdateFreeTreeNote", jsonObject,
function (response) {
if (response.code === 0) {
showSuccessAlert(lxid==0?"修改成功!":"新增成功!");
checkAway();
location.reload();
} else { showErrorAlert(response.message); }
}, function () {
});
}
//删除事件
function DelAway() {
if (JudgeAway(2)) {
if (confirm("删除节点信息,请慎重!")) {
if (confirm("确认要删除吗?")) {
jsonObject.deleteId = $("#txtCode").val();
jsonPost("/wsService/PManagementHandler.ashx?type=DeleteFreeTreeNote", jsonObject,
function (response) {
if (response.code === 0) {
showSuccessAlert("删除成功!");
checkAway();
location.reload();
} else { showErrorAlert(response.message); }
}, function () {
});
}
}
} else { showErrorAlert("请点击要删除的节点!") };
}
//保存前验证方法:0--修改;1:新增;2;删除
//删除不检验
function JudgeAway(lxid) {
if (lxid != 2) {
if (lxid != 1) {
messageError = "";
var value = $("#classify_name").val();
if (value == "") {
messageError = "分类名称不能为空";
messageError += "<br/>";
}
value = $("#order_value").val();
if (value == "") {
messageError = "排序数值不能为空";
messageError += "<br/>";
}
value = $("#code_value").val();
if (value == "") {
messageError = "助记码不能为空";
messageError += "<br/>";
}
return messageError.length === 0 ? true : false;
}
}
return true;
}
//保存内容填充方法
function SaveFileDate(zid) {
jsonObject = {};
var resultInformation = zid == "" ? $("#txtCode").val() + "^" : $("#txtFathCode").val() + "^";
resultInformation += zid == "" ? "^" : zid + "^";
resultInformation += $("#classify_name").val() + "^";
resultInformation += $("#code_value").val() + "^";
resultInformation += $("#order_value").val();
jsonObject.menuArray = resultInformation;
}
//节点点击事件
function GetNodeAway(event, treeId, nodes) {
var fileInfo = event.type == "click" ? true : false;
GetSonNode(nodes, fileInfo);
}
//获取节点信息
function GetSonNode(nodes, fileInfo) {
if (nodes.id != "" && nodes.id != null) {
if (nodes.isParent == true) {
//含有子节点信息
//非父节点(根据ID获取二级或三级菜单)
jsonObject.paramId = nodes.id;
jsonPost("/wsService/PManagementHandler.ashx?type=GetChildrenFreeClassTree", jsonObject,
function (response) {
GroupResultData(response.data, nodes, fileInfo);
}, function () { });
} else {
//不包含子节点信息所以直接更新展示内容
GroupResultData("", nodes, fileInfo);
}
}
}
//节点信息填充
function GroupResultData(dataArray, notes, fileInfo) {
//填充展示信息
if (fileInfo) {
$("#txtCode").val(notes.id);//子ID
$("#txtFathCode").val(notes.pId);//父ID
$("#sify_name").html(notes.SifyName);//分类显示
$("#classify_name").val(notes.name);//分类名称
$("#order_value").val(notes.OrderValue);//排序数值
$("#code_value").val(notes.CodeValue);//助 记 码
}
if (notes.isExpernt != true) {
if (dataArray !== "" && dataArray != null) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
notes.isExpernt = true;
//notes.children = dataArray;
dataArray.forEach(function (obj) {
obj.SifyName = "【" + notes.name + ";" + obj.name + "】";
zTree.addNodes(notes, obj);
});
}
}
}
//清空节点信息
function checkAway() {
//清空输入区数据
$("#txtCode").val("");
$("#txtFathCode").val("");
$("#sify_name").html("");
$("#classify_name").val("");
$("#order_value").val("");
$("#code_value").val("");
}
</script>
</body>
</html>

前台HTML页面

第二步、构建实体类。

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web; namespace Webs.common
{
[Serializable]
//树节点识别信息模型
public class ZTree
{
#region ZTree唯一标识不可改变大小写
/// <summary>
///节点名称
/// </summary>
public string name { set; get; }
/// <summary>
/// 节点Id
/// </summary>
public string id { set; get; }
/// <summary>
/// 节点父ID
/// </summary>
public string pId { set; get; }
/// <summary>
/// 节点是否展开事件
/// </summary>
public bool open { set; get; }
/// <summary>
/// 是否是父节点标识
/// </summary>
public bool isParent { set; get; }
/// <summary>
/// 该节点是否包含子节点信息
/// </summary>
public List<ZTree> children { set; get; }
#endregion #region 自定义属性
/// <summary>
/// 分类展示名称
/// </summary>
public string SifyName { set; get; }
/// <summary>
/// 节点自有名称
/// </summary>
public string ClassifyName { set; get; }
/// <summary>
/// 排序值
/// </summary>
public int OrderValue { set; get; }
/// <summary>
/// 助计码
/// </summary>
public string CodeValue { set; get; }
/// <summary>
/// 是否已展开唯一标识
/// </summary>
public bool isExpernt { get; set; }
#endregion
}
}

ZTree Model

第三步、后台代码。

    #region 费用分类
/// <summary>
/// 获取费用分类一级节点信息
/// </summary>
private void GetFreeClassTree()
{
try
{
string cParamId = stringWithFormId("paramId") == "null" ? "" : stringWithFormId("paramId");
List<ParamClassify> paramClassifyList = new List<ParamClassify>();
bool result = RemotingProxy.Param().GetParamClassifyList(cParamId, userInfo.UserId, ref paramClassifyList, ref Message);
var jsonParent = new ZTree() { id = "-1", ClassifyName = "根节点", open = true, name = "父节点" };
jsonParent.isParent = true;
jsonParent.children = new List<ZTree>();
foreach (var m in paramClassifyList)
{
var json = new ZTree();
json.pId = jsonParent.id;
json.id = m.CParamId;
json.SifyName = "根节点;" + m.VClassifyName;
json.ClassifyName = m.VClassifyName;
json.name = m.VClassifyName;
json.isParent = m.IsContainsChidrens;
json.children = new List<ZTree>();
json.CodeValue = m.VUnitMnem;
json.isParent = true;
json.OrderValue = m.NSortValue;
jsonParent.children.Add(json);
}
Response.Write(result
? jsonString(statusCode.success, Message, jsonParent)
: jsonString(statusCode.fail, Message));
}
catch (Exception ex)
{
CreatErrorTxt(ex.ToString());
Response.Write(jsonString(statusCode.fail, Error.DataError));
}
} /// <summary>
/// 获取费用分类其它节点信息
/// </summary>
private void GetChildrenFreeClassTree()
{
try
{
string cParamId = stringWithFormId("paramId");
List<ParamClassify> paramClassifyList = new List<ParamClassify>();
bool result = RemotingProxy.Param().GetParamClassifyList(cParamId, userInfo.UserId, ref paramClassifyList, ref Message);
var children = new List<ZTree>();
foreach (var m in paramClassifyList)
{
var json = new ZTree();
json.pId = cParamId;
json.id = m.CParamId;
json.ClassifyName = m.VClassifyName;
json.name = m.VClassifyName;
json.isParent = m.IsContainsChidrens;
json.children = new List<ZTree>();
json.CodeValue = m.VUnitMnem;
json.OrderValue = m.NSortValue;
children.Add(json);
}
Response.Write(result
? jsonString(statusCode.success, Message, children)
: jsonString(statusCode.fail, Message));
}
catch (Exception ex)
{
CreatErrorTxt(ex.ToString());
Response.Write(jsonString(statusCode.fail, Error.DataError));
}
} /// <summary>
/// 获取节点详细信息
/// </summary>
private void GetTreeNoteInformation()
{
try
{
string cParamId = stringWithFormId("paramId");
ParamClassify paramClassify = new ParamClassify();
bool result = RemotingProxy.Param().GetParamClassify(cParamId, userInfo.UserId, ref paramClassify, ref Message);
Response.Write(result
? jsonString(statusCode.success, Message, paramClassify)
: jsonString(statusCode.fail, Message));
}
catch (Exception ex)
{
CreatErrorTxt(ex.ToString());
Response.Write(jsonString(statusCode.fail, Error.DataError));
}
} /// <summary>
/// 新增修改节点信息
/// </summary>
private void UpdateFreeTreeNote()
{
try
{
string cParamId ="";
ParamClassify paramClassify = new ParamClassify();
string[] menuIdArray = stringWithFormId("menuArray").Split('^');
paramClassify.CParentParamId = menuIdArray[]=="-1"?"":menuIdArray[];//父级ID
paramClassify.CParamId = menuIdArray[];//自己ID
paramClassify.VClassifyName = menuIdArray[];//分类名称
paramClassify.VUnitMnem = menuIdArray[];//助记码
paramClassify.NSortValue = int.Parse(menuIdArray[]);//排序值
paramClassify.NDelflag = ;//是否删除
bool result = RemotingProxy.Param().UpdateParamClassify(paramClassify, userInfo.UserId, ref cParamId, ref Message);
Response.Write(result
? jsonString(statusCode.success, Message, paramClassify)
: jsonString(statusCode.fail, Message));
}
catch (Exception ex)
{
CreatErrorTxt(ex.ToString());
Response.Write(jsonString(statusCode.fail, Error.DataError));
}
} /// <summary>
/// 删除节点信息
/// </summary>
private void DeleteFreeTreeNote()
{
try
{
string deleteId = stringWithFormId("deleteId");
bool result = RemotingProxy.Param().DeleteParamClassify(deleteId, userInfo.UserId, ref Message);
Response.Write(result
? jsonString(statusCode.success, Message)
: jsonString(statusCode.fail, Message));
}
catch (Exception ex)
{
CreatErrorTxt(ex.ToString());
Response.Write(jsonString(statusCode.fail, Error.DataError));
}
}
#endregion

Handler

下一篇: links
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,994
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,507
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,350
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,135
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,768
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,846