📄 positiontreeview.aspx.cs
字号:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using OAManage.Components;
using System.Configuration;
using Microsoft.Web.UI.WebControls;
namespace OAManage.Module.Position
{
/// <summary>
/// PositionTreeView 的摘要说明。
/// </summary>
public class PositionTreeView : System.Web.UI.Page
{
protected DataTable dataTbl1,dataTbl2;
protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
InitRootNodeDataTable();
InitTreeRootNode(TreeView1.Nodes);
//InitTree(TreeView1.Nodes,"0");
if(TreeView1.Nodes.Count >0)
TreeView1.Nodes[0].Expanded = true;
}
}
#region 将DataReader 转为 DataTable
/// <summary>
/// 将DataReader 转为 DataTable
/// </summary>
/// <param name="DataReader">DataReader</param>
public DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
{
DataTable datatable = new DataTable();
DataTable schemaTable = dataReader.GetSchemaTable();
//动态添加列
foreach(DataRow myRow in schemaTable.Rows)
{
DataColumn myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.String");
myDataColumn.ColumnName = myRow[0].ToString();
datatable.Columns.Add(myDataColumn);
}
//添加数据
while(dataReader.Read())
{
DataRow myDataRow = datatable.NewRow();
for(int i=0;i<schemaTable.Rows.Count;i++)
{
myDataRow[i] = dataReader[i].ToString();
}
datatable.Rows.Add(myDataRow);
myDataRow = null;
}
schemaTable = null;
return datatable;
}
#endregion
/// <summary>
/// 初始化 RootNode DataTable
/// </summary>
private void InitRootNodeDataTable()
{
Database data = new Database();
SqlDataReader dataReader = null;
try
{
data.RunProc("sp_GetRootPosition", out dataReader);
}
catch(Exception ex)
{
Response.Write(ex.ToString());
//Error.Log(ex.ToString());
}
dataTbl1 = ConvertDataReaderToDataTable(dataReader);
dataTbl1.TableName = "TreeView";
}
/// <summary>
/// 初始化 ChildNode DataTable
/// </summary>
private void InitChildNodeDataTable(int ClassParentID)
{
Database data = new Database();
SqlDataReader dataReader = null;
SqlParameter[] prams = {
data.MakeInParam("@PositionID",SqlDbType.Int , 20, ClassParentID)
};
try
{
data.RunProc("sp_GetSubPosition", prams,out dataReader);
}
catch(Exception ex)
{
Response.Write(ex.ToString());
//Error.Log(ex.ToString());
}
dataTbl2 = ConvertDataReaderToDataTable(dataReader);
dataTbl2.TableName = "TreeView";
}
/// <summary>
/// 初始化TreeView 的 RootNode
/// </summary>
private void InitTreeRootNode(TreeNodeCollection TNC)
{
DataView dataView = new DataView();
dataView = dataTbl1.Copy().DefaultView;
dataView.RowFilter = "Super_Position_ID = Position_ID";
foreach(DataRowView drv in dataView)
{
TreeNode tn = new TreeNode();
tn.ID = drv["Position_ID"].ToString();
tn.Text = "<span onmouseover=javascript:title='"+drv["Position_Description"].ToString()+"'>"+drv["Position_Name"].ToString()+"</span>";
tn.ImageUrl = GetIcon("8");
tn.NavigateUrl = "ListView.aspx?PositionID=" + tn.ID;
tn.Target = "MainFrame1";
TNC.Add(tn);
InitChildNodeDataTable(Int32.Parse(tn.ID.ToString()));
InitTreeChildNode(tn.Nodes,tn.ID);
}
dataTbl1 = null;
dataTbl2 = null;
}
/// <summary>
/// 初始化TreeView 的 ChildNode
/// </summary>
private void InitTreeChildNode(TreeNodeCollection TNC,string classParentID)
{
DataView dataView = new DataView();
dataView = dataTbl2.Copy().DefaultView ;
dataView.RowFilter = "Super_Position_ID = " + classParentID + "";
foreach(DataRowView drv in dataView)
{
TreeNode tn = new TreeNode();
tn.ID = drv["Position_ID"].ToString();
tn.Text = "<span onmouseover=javascript:title='"+drv["Position_Description"].ToString()+"'>"+drv["Position_Name"].ToString()+"</span>";
tn.ImageUrl = GetIcon("9");
tn.NavigateUrl = "ListView.aspx?PositionID=" + tn.ID;
tn.Target = "MainFrame1";
TNC.Add(tn);
InitChildNodeDataTable(Int32.Parse(tn.ID.ToString()));
InitTreeChildNode(tn.Nodes,tn.ID);
}
}
#region 获取节点图标
/// <summary>
/// 获取节点图标
/// </summary>
private string GetIcon(string ClassType)
{
string rtnValue = "../../DataImages/";
switch (ClassType)
{
case "0":
rtnValue += "flag.gif" ;
break;
case "1":
rtnValue += "myDoc.gif" ;
break;
case "2":
rtnValue += "mail.gif" ;
break;
case "3":
rtnValue += "page.gif" ;
break;
case "4":
rtnValue += "scales.gif" ;
break;
case "5":
rtnValue += "mail.gif" ;
break;
case "6":
rtnValue += "help_page.gif" ;
break;
case "7":
rtnValue += "red_ball.gif" ;
break;
case "8":
rtnValue += "search_globe.gif" ;
break;
case "9":
rtnValue += "person.gif" ;
break;
default:
rtnValue += "";
break;
}
return rtnValue;
}
#endregion
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -