treeview构造函数,以备日后使用

需要首先获取树的datatable,该表结构是有父子关系 的表,另外,该方法中未将target进行设置,如有需要可以再加参数,并将树节点的target属性赋值即可指定节点url对应的frame public class Tree     {         public Tree()         {             //             // TODO: 在此处添加构造函数逻辑             //         }         /// <summary>         /// 构造树         /// </summary>         /// <param name="tv">所需构造的树</param>         /// <param name="pNode">需添加的节点,如为空则构造完整树</param>         /// <param name="dt_treedata">构造数datatable</param>         /// <param name="idCol">关键字列名</param>         /// <param name="parentCol">上级编码列</param>         /// <param name="textCol">文本列</param>         /// <param name="urlcol">对应url</param>         /// <param name="ParentID">上级节点id</param>         public static void BuildTree(TreeView tv, TreeNode pNode, DataTable dt_treedata, string idCol, string parentCol, string textCol, string urlcol, string ParentID)         {             string oldfilter = dt_treedata.DefaultView.RowFilter;             DataView dvTree = new DataView(dt_treedata);             string Fstr = "";             if (ParentID == "")                 Fstr = parentCol + " is null ";             else                 Fstr = parentCol + " = '" + ParentID + "'";             if (string.IsNullOrEmpty(oldfilter))                 dvTree.RowFilter = Fstr;             else                 dvTree.RowFilter = oldfilter + " and " + Fstr;             foreach (DataRowView Row in dvTree)             {                 TreeNode Node = new TreeNode();                 if (pNode == null)                 {                     //Node.Name = Row[idCol].ToString();                     Node.Value = Row.Row[idCol].ToString();                     Node.Text = Row.Row[textCol].ToString();                     Node.NavigateUrl = Row.Row[urlcol].ToString();                     tv.Nodes.Add(Node);                     BuildTree(tv, Node, dt_treedata, idCol, parentCol, textCol, urlcol, Row.Row[idCol].ToString());                 }                 else //处理子节点                 {                     //Node.Name = Row[idCol].ToString();                     Node.Value = Row.Row[idCol].ToString();                     Node.Text = Row.Row[textCol].ToString();                     Node.NavigateUrl = Row.Row[urlcol].ToString();                     pNode.ChildNodes.Add(Node);                     BuildTree(tv, Node, dt_treedata, idCol, parentCol, textCol, urlcol, Row.Row[idCol].ToString());                 }             }         }     } 调用方法如下: public void BindTree()     {         DataTable dt_treedata = GetClassfifyData();         this.TreeView1.Nodes.Clear();         WebFrameWork.WebControls.Tree.BuildTree(this.TreeView1, null, dt_treedata, "ID", "sparentid", "sname", "url", "");     } public DataTable GetClassfifyData()     {         DataTable dt_temp = new DataTable();         dt_temp.Columns.Add("ID",typeof(string));         dt_temp.Columns.Add("sparentid", typeof(string));         dt_temp.Columns.Add("sname", typeof(string));         dt_temp.Columns.Add("url", typeof(string));         WebFrameWork.BF.BF_FileClassify bf_file = new WebFrameWork.BF.BF_FileClassify();         QueryParam qp = new QueryParam();         int rowcount = 0;         qp.OrderType = 0;         ArrayList al = bf_file.GetList(qp, out rowcount);         foreach (FL_CLASSIFYTable fc in al)         {             dt_temp.Rows.Add(fc.ID, fc.SPARENTID, fc.SNAME, "../filemanager/list.aspx?classifyid='" + fc.ID + "'");         }               return dt_temp;     }
public StringUnit() { // //TODO: 在此处添加构造函数逻辑 // } /// <summary> /// 生成随机数 /// </summary> /// <returns></returns> private string GenerateCheckCode() { #region int number; char code; string checkCode = String.Empty; System.Random random = new Random(); for (int i = 0; i < 5; i++) { number = random.Next(); if (number % 2 == 0) code = (char)('0' + (char)(number % 10)); else code = (char)('A' + (char)(number % 26)); checkCode += code.ToString(); } HttpContext.Current.Response.Cookies.Add(new HttpCookie("CheckCode", checkCode)); return checkCode; #endregion } /// <summary> /// 生成验证码图片 /// </summary> public void CreateCheckCodeImage() { #region string checkCode = GenerateCheckCode(); if (checkCode == null || checkCode.Trim() == String.Empty) return; System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)), 22); Graphics g = Graphics.FromImage(image); try { //生成随机生成器 Random random = new Random(); //清空图片背景色 g.Clear(Color.White); //画图片的背景噪音线 for (int i = 0; i < 25; i++) { int x1 = random.Next(image.Width); int x2 = random.Next(image.Width); int y1 = random.Next(image.Height); int y2 = random.Next(image.Height); g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2); } Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic)); System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true); g.DrawString(checkCode, font, brush, 2, 2); //画图片的前景噪音点 for (int i = 0; i < 100; i++) { int x = random.Next(image.Width); int y = random.Next(image.Height); image.SetPixel(x, y, Color.FromArgb(random.Next())); } //画图片的边框线 g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1); System.IO.MemoryStream ms = new System.IO.MemoryStream(); image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif); HttpContext.Current.Response.ClearContent(); HttpContext.Current.Response.ContentType = "image/Gif"; HttpContext.Current.Response.BinaryWrite(ms.ToArray()); } finally { g.Dispose(); image.Dispose(); } #endregion }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值