namespace ut.include


...{

using System;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Data.SqlClIEnt;

using System.Data.OleDb;

using Microsoft.Web.UI.WebControls;

//using com.utils;



/**//// <summary>

/// UserknowledgeTree 的摘要說明。

/// </summary>

public class UserknowledgeTree : System.Web.UI.UserControl


...{

protected Microsoft.Web.UI.WebControls.TreeVIEw tvTest;

//聲明控件

private TreeNode TreeNodeAll=null;

private TreeNode TreeNode1=null;

private TreeNode TreeNode2=null;

private TreeNode TreeNode22=null;

private TreeNode TreeNode3=null;

private OleDbConnection conn=null;

private OleDbDataAdapter sda=null;

private DataSet ds=null;

protected System.Web.UI.WebControls.DataGrid DataGrid1;

private string strSql="";

private void Page_Load(object sender, System.EventArgs e)


...{

if(!Page.IsPostBack)


...{

BindTreeVIEw();

}

}

private void BindTreeVIEw()


...{

//讀出第總層

string SqlConnectionString =System.Configuration.ConfigurationSettings.APPSettings["SQLCONNECTIONSTRING"].ToString();

DataSet dsAll=new DataSet();

&nb SqlConnection conn=new SqlConnection(SqlConnectionString);


strSql=getDocTypeList(1);

SqlDataAdapter sdaAll=new SqlDataAdapter (strSql,conn);

sdaAll.Fill(dsAll,"DocumentType");


for( int i = 0; i < dsAll.Tables[ "DocumentType" ].Rows.Count; i++ )


...{

TreeNodeAll = new TreeNode( );

TreeNodeAll.Text = dsAll.Tables[ "DocumentType" ].Rows[ i ][ "docTypeName" ].ToString();

TreeNodeAll.ID=dsAll.Tables[ "DocumentType" ].Rows[ i ][ "docTypeid" ].ToString();

TreeNodeAll.ExpandedImageUrl="..\images\open.gif";

TreeNodeAll.ImageUrl="..\images\dot3.gif";

TreeNodeAll.NavigateUrl="..\DocAdvanceSearch1.ASPx?DocTypeID="+TreeNodeAll.ID+"&DocTypeName="+TreeNodeAll.Text;

TreeNodeAll.Target="main";

//如果是產品手冊就顯示樹形結構

if(TreeNodeAll.Text=="產品手冊")


...{

BindTreeVIEw2();

}

this.tvTest.Nodes.Add(TreeNodeAll);

}

}

private void BindTreeVIEw2()


...{

//遠程調用得到一個DATASET

//在DATASET中放入FLOD,FILE二張表

ds=BackDataSet();

DataTable dt=ds.Tables["Fold"];


//把File表中的第一層放入Flod表中

for(int i=0;i<ds.Tables["File"].Rows.Count;i++)


...{

//如果FolderParentID為0則說明是第一層

if(ds.Tables["File"].Rows[i]["FileFolderID"].ToString().Trim()=="0")


...{

DataRow dr=dt.NewRow();

dr["FolderID"]=ds.Tables["File"].Rows[ i ][ "FileID" ].ToString( );

dr["FolderParentID"]=ds.Tables["File"].Rows[ i ][ "FileFolderID" ].ToString( );

dr["FolderName"]=ds.Tables["File"].Rows[ i ][ "FileName" ].ToString( );

dr["FolderDescription"]=ds.Tables["File"].Rows[ i ][ "FileDescription" ].ToString( );

dt.Rows.Add(dr);

}

}

//讀出Fold表和File表中的第一層

for(int i=0;i<ds.Tables["Fold"].Rows.Count;i++)


...{

//如果FolderParentID為0則說明是第一層

if(ds.Tables["Fold"].Rows[i]["FolderParentID"].ToString().Trim()=="0")


...{

TreeNode1=new TreeNode();

& TreeNode1.Text = ds.Tables[ "Fold" ].Rows[ i ][ "FolderName" ].ToString( );

TreeNode1.ExpandedImageUrl="..\images\open.gif";

string foldName=ds.Tables[ "Fold" ].Rows[ i ][ "FolderName" ].ToString().Trim();

if(foldName=="OMUX" || foldName=="iPAS" || foldName=="Terminal" )


...{

TreeNode1.ImageUrl="..\images\file.gif";

TreeNode1.NavigateUrl="..\DocAdvanceSearch1.ASPx?ProList=1&sys="+ds.Tables[ "Fold" ].Rows[ i ][ "FolderDescription" ].ToString( );

TreeNode1.Target="main";

}

else


...{

TreeNode1.ImageUrl="..\images\close.gif";


}


//取第二層數據

&nbs 二層遍歷

for( int j = 0; j < ds.Tables[ "Fold" ].Rows.Count; j++ )


...{

//假如FolderParentID與FolderID相一致說明是同一級中數據,將此節點加入到此節中

string folderID=ds.Tables[ "Fold" ].Rows[ i ][ "FolderID" ].ToString().Trim();

string folderParentID=ds.Tables[ "Fold" ].Rows[ j ][ "FolderParentID" ].ToString().Trim();

if(folderID==folderParentID)


...{

TreeNode2 = new TreeNode( );

TreeNode2.Text = ds.Tables[ "Fold" ].Rows[j][ "FolderName" ].ToString( );

TreeNode2.ExpandedImageUrl="..\images\open.gif";

TreeNode2.ImageUrl="..\images\close.gif";


//第三層遍歷

for( int k = 0; k< ds.Tables[ "file" ].Rows.Count; k++ )


...{

//假如FolderParentID與FolderID相一致說明是同一級中數據,將此節點加入到此節中

string folderID2=ds.Tables[ "Fold" ].Rows[ j ][ "FolderID" ].ToString().Trim();

string fileFolderID2=ds.Tables[ "File" ].Rows[ k ][ "FileFolderID" ].ToString().Trim();

if(folderID2==fileFolderID2)


...{

TreeNode3 = new TreeNode( );

TreeNode3.Text = ds.Tables[ "file" ].Rows[ k ][ "FileName" ].ToString( );

TreeNode3.ImageUrl="..\images\file.gif";

TreeNode3.NavigateUrl="..\DocAdvanceSearch1.ASPx?ProList=1&sys="+ds.Tables[ "file" ].Rows[ k ][ "FileDescription" ].ToString( );

TreeNode3.Target="main";

TreeNode2.Nodes.Add( TreeNode3 );

}

}

TreeNode1.Nodes.Add(TreeNode2 );

}

}

//FILE表中第二層遍歷

for( int j = 0; j < ds.Tables[ "File" ].Rows.Count; j++ )


...{

//假如FolderParentID與FolderID相一致說明是同一級中數據,將此節點加入到此節中

string folderID=ds.Tables[ "Fold" ].Rows[ i ][ "FolderID" ].ToString().Trim();

string fileFolderID=ds.Tables[ "File" ].Rows[ j ][ "FileFolderID" ].ToString().Trim();

if(folderID==fileFolderID)


...{

TreeNode22 = new TreeNode( );

TreeNode22.Text = ds.Tables[ "File" ].Rows[ j ][ "FileName" ].ToString( );

TreeNode22.ImageUrl="..\images\file.gif";

TreeNode22.NavigateUrl="..\DocAdvanceSearch1.ASPx?ProList=1&sys="+ds.Tables[ "file" ].Rows[ j ][ "FileDescription" ].ToString( );

TreeNode22.Target="main";


TreeNode1.Nodes.Add( TreeNode22 );

}

}

TreeNodeAll.Nodes.Add(TreeNode1);


}

}

}


//返回DataSet

private DataSet BackDataSet()


...{

//查看配置文件如果Remoting為false就讀取本地文件

string isRemoting=System.Configuration.ConfigurationSettings.APPSettings["isRemoting"].ToString().Trim();

DataSet ds=new DataSet();

if(isRemoting.ToUpper()=="FALSE")


...{

//讀出Flod表

string conStr=System.Configuration.ConfigurationSettings.APPSettings["irstrconn"].ToString();

strSql="Select FolderID,FolderParentID,FolderName,FolderDescription from Folder";

conn=new OleDbConnection(conStr);

sda=new OleDbDataAdapter(strSql,conn);

sda.Fill(ds,"Fold");

//讀出File表

strSql="Select FileID,FileFolderID,FileName,FileDescription from File";

sda=new OleDbDataAdapter(strSql,conn);

sda.Fill(ds, "File");

}

else


...{ string catheName="DocTree";

if(Cache[catheName]==null)


...{

com.ut.ui.RemoServer rs=new com.ut.ui.RemoServer();

ds= rs.GetDocTree();

Cache.Add(catheName, ds, null, DateTime.Now.AddMinutes(10), TimeSpan.Zero,System.Web.Caching.CacheItemPriority.High,null);

}

else


...{

ds=(DataSet)Cache[catheName];

}

}


return ds;

}




public stringgetDocTypeList(int status)


...{

String sql = "";

if(status < 2)


...{

sql = "select docTypeid,docTypeName from DocumentType where isOutPublish=" + status + " order by orderid";

}

else if(status == 2)


...{

sql = "select docTypeid,docTypeName from DocumentType order by orderid";

}

else if(status > 2)


...{

sql = "select docTypeid,docTypeName from DocumentType where isInnerPublish=1 order by orderid";

}

return sql;

}


Web 窗體設計器生成的代碼#region Web 窗體設計器生成的代碼

override protected void OnInit(EventArgs e)


...{ ...{

this.Load += new System.EventHandler(this.Page_Load);


}

#endregion


}

}


//

// CODEGEN: 該調用是 ASP.Net Web 窗體設計器所必需的。

//

InitializeComponent();

base.OnInit(e);

}


/**//// <summary>

/// 設計器支持所需的方法 - 不要使用代碼編輯器

/// 修改此方法的內容。

/// </summary>

private void InitializeComponent()


...{

this.Load += new System.EventHandler(this.Page_Load);


}

#endregion


}

}