Jquery+ztree+json+webservice+mysql制作树形菜单+ajax列表页面
aspx文件:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="JCSJ_DQ.aspx.cs" Inherits="a.Product.N_Public.JCSJ_DQ1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script type="text/javascript" language="javascript" src="../../js/jquery-1.6.1.min.js"></script>
<link rel="stylesheet" href="css/demo.css" type="text/css">
<link rel="stylesheet" href="css/zTreeStyle.css" type="text/css">
<script type="text/javascript" src="js/demoTools.js"></script>
<script type="text/javascript" src="js/jquery-ztree-2.5.js"></script>
<script language="JavaScript">
<!--
var zTree1;
var setting;
var isGetNodes = false;
setting = {
expandSpeed: "",
callback: {
beforeExpand: zTreeBeforeExpand,
beforeCollapse: zTreeBeforeCollapse,
expand: zTreeOnExpand,
click:zTreeOnClick,
collapse: zTreeOnCollapse
}
};
$(document).ready(function(){
zTree1 = $("#treeDemo").zTree(setting, clone(zNodes, ""));
DWInfoList('320000','',10,1) ;
GetDWPage('320000','',10,1) ;
$("#Submit").click(function(){
DWPageList('320000',$("#TexDWName").val(),10,1) ;
//DWInfoList('320000',$("#TexDWName").val(),10,1) ;
// GetDWPage('320000',$("#TexDWName").val(),10,1) ;
});
});
var isGetNodes = false;
var curParentNode = null;
function zTreeBeforeExpand(treeId, treeNode) {
if (!isGetNodes && treeNode.isParent && (!treeNode.nodes || treeNode.nodes.length==0)) {
curParentNode = treeNode;
isGetNodes = true;
var id = curParentNode.id;
$.ajax({
type: 'POST',
url: 'JCSJ_DQ.asmx/GetDQJSon',
data: { strJCSJ_DQ_PID: id },
dataType: 'xml',
success: function(data) {
var msg=$(data).text();
if (!msg || msg.length == 0) {
isGetNodes = false;
return;
}
var newNodes = "";
try {
newNodes = eval("(" + msg + ")");
// alert(msg);
} catch(e) {}
if (newNodes && newNodes != "") {
zTree1.addNodes(curParentNode, newNodes, true);
zTree1.updateNode(curParentNode);
zTree1.selectNode(curParentNode.nodes[0]);
isGetNodes = false;
};
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.responseText && XMLHttpRequest.responseText != null) { alert(XMLHttpRequest.responseText) }
else alert(textStatus);
}
});
return false;
}
return true;
}
function zTreeOnExpand(event, treeId, treeNode) {
}
function zTreeOnClick(event, treeId, treeNode) {
// alert(treeNode.id);
DWPageList(treeNode.id,$("#TexDWName").val(),10,1) ;
}
function zTreeBeforeCollapse(treeId, treeNode) {
}
function zTreeOnCollapse(event, treeId, treeNode) {
}
function DWInfoList(p_dqid,p_dwname,p_pagesize,p_current) {
$.ajax({
type: 'POST',
url: 'JCSJ_DQ.asmx/GetDWDataTable',
data: { strJCSJ_DQ_DQID: p_dqid, strJCSJ_DQ_Name: p_dwname,intPageSize:p_pagesize,intCurrent:p_current},
dataType: 'xml',
success: function(data) {
var inner='';
$('Column', data).each(
function() {
inner+=$(this).find('XZGL_CMPNY_NAME').text()+'<br>';
});
// alert(inner);
//$("#infolist").append(inner);
document.getElementById("infolist").innerHTML=inner;
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.responseText && XMLHttpRequest.responseText != null) { alert(XMLHttpRequest.responseText) }
else alert(textStatus);
}
});
}
function GetDWPage(p_dwid,p_dwname,p_pagesize,p_current) {
$.ajax({
type: 'POST',
url: 'JCSJ_DQ.asmx/GetDWPage',
data: { strJCSJ_DQ_DQID: p_dwid, strJCSJ_DQ_Name: p_dwname,intPageSize:p_pagesize,intCurrent:p_current},
dataType: 'xml',
success: function(data) {
document.getElementById("page").innerHTML=$('string', data).text();
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
if (XMLHttpRequest.responseText && XMLHttpRequest.responseText != null) { alert(XMLHttpRequest.responseText) }
else alert(textStatus);
}
});
}
function DWPageList(p_dwid,p_dwname,p_pagesize,p_current) {
DWInfoList(p_dwid,p_dwname,p_pagesize,p_current);
GetDWPage(p_dwid,p_dwname,p_pagesize,p_current);
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
<!
-- body, td, th
{
font-size: 12px;
}
.style1
{
width: 179px;
}
.style2
{
width: 17%;
}
-- ></style>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="60%" border="1" align="center">
<tr>
<td width="201" rowspan="2" align="left" valign="top" style="height: 100%; width: 200px; border-right: #C6DFFF 2px ridge;
filter: progid:DXImageTransform.Microsoft.Gradient(gradienttype=0, startcolorstr=#ffffff, endcolorstr=#B5DEF7)">
<div class="zTreeDemoBackground" style="overflow: scroll; width: 200px; height:500px">
<ul id="treeDemo" class="tree">
</ul>
</div>
</td>
<td width="607" height="25" align="center" valign="top">
<table width="100%" border="0">
<tr>
<td class="style2">
单位名称:
</td>
<td class="style1">
<input id="TexDWName" type="text" />
</td>
<td width="36%">
<div id="Submit" align="center">查询</div></td>
</tr>
</table>
</td>
</tr>
<tr>
<td height="383" align="center" valign="top">
<table width="100%" border="0">
<tr>
<td height="327" align="left" valign="top"><table width="100%" border="0">
<tr>
<td height="250" align="left" valign="top"><div id="infolist" align="left"> </div><br />
<p id="infolistp"></p></td>
</tr>
<tr>
<td align="center"><div id="page" align="center"></div></td>
</tr>
</table> </td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</form>
</body>
</html>
JCSJ_DQ.asmx.cs 文件:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Collections.Generic;
using a.Library.DataAccess;
using a.Library.Major;
namespace a.Product.N_Public
{
/// <summary>
/// JCSJ_DQ 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class JCSJ_DQ : System.Web.Services.WebService
{
private TApplication n_app = null;
protected TApplication app
{
get
{
if (n_app == null)
{
if (this.Context.Application["TW3WP"] == null)
{
this.Context.Application["TW3WP"] = new TApplication(System.Web.Hosting.HostingEnvironment.MapPath(@"~\bin"),
System.Configuration.ConfigurationManager.AppSettings["SysAccess"]);
}
n_app = (TApplication)this.Context.Application["TW3WP"];
}
return n_app;
}
}
private TDataBase n_db = null;
protected TDataBase db
{
get
{
if (n_db == null)
{
n_db = TContextDataBase.GetDataBase(app.DBInfo);
}
return n_db;
}
}
[WebMethod(EnableSession = true)]
public string GetDQJSon(string strJCSJ_DQ_PID)
{
DataTable dt = new DataTable();
string p_rec = "[";
TSQL aSQL = new TSQL();
aSQL.Add("select JCSJ_DQ_ID,JCSJ_DQ_Name,JCSJ_dq_jc from JCSJ_DQ where JCSJ_DQ_PID=:JCSJ_DQ_PID");
aSQL.ParamByName("JCSJ_DQ_PID").Value = strJCSJ_DQ_PID;
DataSet ds = db.OpenDataSet(aSQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
for (int q = 0; q < ds.Tables[0].Rows.Count; q++)
{
if (ds.Tables[0].Rows[q][2].ToString() == "4")
p_rec += "{id:" + ds.Tables[0].Rows[q][0] + ",name:'" + ds.Tables[0].Rows[q][1] + "',isParent:false},";
else
p_rec += "{id:" + ds.Tables[0].Rows[q][0] + ",name:'" + ds.Tables[0].Rows[q][1] + "',isParent:true},";
}
}
p_rec = p_rec.Trim(',') + "]";
return p_rec;
}
[WebMethod(EnableSession = true)]
public DataTable GetDQDataTable(string strJCSJ_DQ_PID)
{
DataTable dt = new DataTable();
dt.TableName = "Column";
dt.Columns.Add("JCSJ_DQ_ID", Type.GetType("System.String"));
dt.Columns.Add("JCSJ_DQ_Name", Type.GetType("System.String"));
TSQL aSQL = new TSQL();
aSQL.Add("select JCSJ_DQ_ID,JCSJ_DQ_Name from JCSJ_DQ where JCSJ_DQ_PID=:JCSJ_DQ_PID");
aSQL.ParamByName("JCSJ_DQ_PID").Value = strJCSJ_DQ_PID;
DataSet ds = db.OpenDataSet(aSQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
for (int q = 0; q < ds.Tables[0].Rows.Count; q++)
{
DataRow dr = dt.NewRow();
dr["JCSJ_DQ_ID"] = ds.Tables[0].Rows[q][0];
dr["JCSJ_DQ_Name"] = ds.Tables[0].Rows[q][1];
dt.Rows.Add(dr);
}
}
else
{
DataRow dr = dt.NewRow();
dr["JCSJ_DQ_ID"] = "";
dr["JCSJ_DQ_Name"] = "";
dt.Rows.Add(dr);
}
return dt;
}
[WebMethod(EnableSession = true)]
public DataTable GetDWDataTable(string strJCSJ_DQ_DQID, string strJCSJ_DQ_Name, int intPageSize, int intCurrent)
{
DataTable dt = new DataTable();
dt.TableName = "Column";
dt.Columns.Add("XZGL_CMPNY_ID", Type.GetType("System.String"));
dt.Columns.Add("XZGL_CMPNY_NAME", Type.GetType("System.String"));
TSQL aSQL = new TSQL();
aSQL.Add("select XZGL_CMPNY_ID,XZGL_CMPNY_NAME from XZGL_CMPNY where 1=1 ");// XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID");
if (!string.IsNullOrEmpty(strJCSJ_DQ_DQID))
{
// aSQL.Add(" and (XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID or XZGL_CMPNY_SZZID=:XZGL_CMPNY_DQID)");
aSQL.Add(" and (XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID)");
aSQL.ParamByName("XZGL_CMPNY_DQID").Value = strJCSJ_DQ_DQID;
}
if (!string.IsNullOrEmpty(strJCSJ_DQ_Name))
{
aSQL.Add(" and XZGL_CMPNY_NAME like '%:XZGL_CMPNY_NAME%' ");
aSQL.ParamByName("XZGL_CMPNY_NAME").Value=strJCSJ_DQ_Name;
}
aSQL.Add(" limit " + (intCurrent-1) * intPageSize+" , "+ intPageSize);
DataSet ds = db.OpenDataSet(aSQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
for (int q = 0; q < ds.Tables[0].Rows.Count; q++)
{
DataRow dr = dt.NewRow();
dr["XZGL_CMPNY_ID"] = ds.Tables[0].Rows[q][0];
dr["XZGL_CMPNY_NAME"] = ds.Tables[0].Rows[q][1];
dt.Rows.Add(dr);
}
}
else
{
DataRow dr = dt.NewRow();
dr["XZGL_CMPNY_ID"] = "";
dr["XZGL_CMPNY_NAME"] = "";
dt.Rows.Add(dr);
}
return dt;
}
[WebMethod(EnableSession = true)]
public string GetDWTotalDataTable(string strJCSJ_DQ_DQID, string strJCSJ_DQ_Name)
{
string p_rec="0";
TSQL aSQL = new TSQL();
aSQL.Add("select XZGL_CMPNY_ID,XZGL_CMPNY_NAME from XZGL_CMPNY where 1=1 ");// XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID");
if (!string.IsNullOrEmpty(strJCSJ_DQ_DQID))
{
//aSQL.Add(" and (XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID or XZGL_CMPNY_SZZID=:XZGL_CMPNY_DQID)");
aSQL.Add(" and (XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID)");
aSQL.ParamByName("XZGL_CMPNY_DQID").Value = strJCSJ_DQ_DQID;
}
if (!string.IsNullOrEmpty(strJCSJ_DQ_Name))
{
aSQL.Add(" and XZGL_CMPNY_NAME like '%:XZGL_CMPNY_NAME%' ");
aSQL.ParamByName("XZGL_CMPNY_NAME").Value = strJCSJ_DQ_Name;
}
DataSet ds = db.OpenDataSet(aSQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
p_rec= ds.Tables[0].Rows.Count.ToString();
}
return p_rec;
}
[WebMethod(EnableSession = true)]
public string GetDWPage(string strJCSJ_DQ_DQID, string strJCSJ_DQ_Name,int intPageSize, int intCurrent)
{
int p_totalrec = 0;
TSQL aSQL = new TSQL();
aSQL.Add("select XZGL_CMPNY_ID,XZGL_CMPNY_NAME from XZGL_CMPNY where 1=1 ");// XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID");
if (!string.IsNullOrEmpty(strJCSJ_DQ_DQID))
{
// aSQL.Add(" and (XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID or XZGL_CMPNY_SZZID=:XZGL_CMPNY_DQID)");
aSQL.Add(" and (XZGL_CMPNY_DQID=:XZGL_CMPNY_DQID)");
aSQL.ParamByName("XZGL_CMPNY_DQID").Value = strJCSJ_DQ_DQID;
}
if (!string.IsNullOrEmpty(strJCSJ_DQ_Name))
{
aSQL.Add(" and XZGL_CMPNY_NAME like '%:XZGL_CMPNY_NAME%' ");
aSQL.ParamByName("XZGL_CMPNY_NAME").Value = strJCSJ_DQ_Name;
}
DataSet ds = db.OpenDataSet(aSQL);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
p_totalrec = ds.Tables[0].Rows.Count;
}
int p_totalPage = 0;
if ((p_totalrec % intPageSize) != 0)
p_totalPage = (p_totalrec / intPageSize) + 1;
else
p_totalPage = p_totalrec / intPageSize;
string p_show = " <a href=javascript:DWPageList('"+strJCSJ_DQ_DQID+"','"+strJCSJ_DQ_Name+"',"+intPageSize+",1)>首页</a> ";
if (intCurrent > 1)
p_show += " <a href=javascript:DWPageList('"+strJCSJ_DQ_DQID+"','"+strJCSJ_DQ_Name+"'," + intPageSize + "," + (intCurrent -1) + ")>上一页</a> ";
else
p_show += " 上一页 ";
if (intCurrent < p_totalPage)
p_show += " <a href=javascript:DWPageList('"+strJCSJ_DQ_DQID+"','"+strJCSJ_DQ_Name+"'," + intPageSize + "," + (intCurrent + 1) + ")>下一页</a> ";
else
p_show += " 下一页 ";
p_show += " <a href=javascript:DWPageList('"+strJCSJ_DQ_DQID+"','"+strJCSJ_DQ_Name+"'," + intPageSize + ","+p_totalPage+")>未页</a> ";
p_show += " " + intPageSize + "条/页 ";
p_show += " 共" + p_totalrec + "条记录 ";
p_show += " 共" + p_totalPage + "页 ";
return p_show;
}
}
}