TreeGridView实现OA系统导航 //递归调用填充TreeView控件 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //获取数据连接语句,并创建数据库连接对象 myConn = DBClass.GetConnection(); CreateDataSet(); InitTree(TreeView1.Nodes, "0"); } } //将数据库数据填充到TreeView控件 //从DataSet中取数据建树 //从根节点开始递归调用显示子树 public void InitTree(TreeNodeCollection Nds, string parentId) { TreeNode NewNode; //data为存储建树数据信息的数据集 //用父节点进行筛选数据集中信息 DataRow[] rows = data.Tables[0].Select("parent_Id='" + parentId + "'"); foreach (DataRow row in rows) { NewNode = new TreeNode(row["title"].ToString(), //设置父节点 row["Files_Id"].ToString(), "images/1.gif", row["NavigateUrl"].ToString(), ""); Nds.Add(NewNode); InitTree(NewNode.ChildNodes, row["Files_Id"].ToString());//添加子节点 } } //点击节点调用自定义方法跳转到指定页面 protected void TreeView1_SelectedNodeChanged1(object sender, EventArgs e) { int nodeId = Convert.ToInt32(TreeView1.SelectedValue);//获取TreeView控件选择的值 string url = DBClass.GetUrl(nodeId);//获取指定地址 Response.Redirect(url.ToString());//转到指定页 }//CodeGo.net/ //利用存储过程从数据库中获取TreeView控件中节点相关地址 public static string GetUrl(int filesId) { //获得url地址 SqlConnection myConnection = GetConnection(); SqlCommand myCommand = new SqlCommand("GetUrl", myConnection); myCommand.CommandType = CommandType.StoredProcedure; //添加参数 SqlParameter FilsesId = new SqlParameter("@FilesId", SqlDbType.Int, 4); FilsesId.Value = filesId; myCommand.Parameters.Add(FilsesId); //添加参数 SqlParameter Url = new SqlParameter("@Url", SqlDbType.NVarChar, 100); Url.Direction = ParameterDirection.Output; myCommand.Parameters.Add(Url); //执行存储过程 myConnection.Open(); myCommand.ExecuteNonQuery(); string url = Url.Value.ToString(); myCommand.Dispose(); myConnection.Dispose(); return url; } //数据库连接 public static SqlConnection GetConnection() { //获取数据连接语句,并创建数据库连接对象 String conn = ConfigurationManager.AppSettings["conn"].ToString(); SqlConnection myConn; myConn = new SqlConnection(conn); return myConn; }
开源 的 应该有属性吧。 http://blogs.msdn.com/b/markrideout/archive/2006/01/08/510700.aspx
111,119
社区成员
642,555
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧