ylbtech-Unitity: cs-HtmlHelpers |
PagingHelpers.cs SelectInputHelpers.cs TreeHelpers.cs
1.A,效果图返回顶部 |
1.B,源代码返回顶部 |
1.B.1,PagingHelpers.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Text; using Core.Repository; namespace Core.HtmlHelpers { public static class PagingHelpers { public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl, string fnData = "") { StringBuilder result = new StringBuilder(); for (int i = 1; i <= pagingInfo.TotalPages; i++) { result.AppendLine("<a href='#' ");// if (i == pagingInfo.CurrentPage) result.Append(" class='selected' "); result.Append( " onclick="pageing(this," + i + ",'" + fnData + "')">" + i + "</a>"); ////TagBuilder tag = new TagBuilder("a"); //创建<a>标签 ////tag.MergeAttribute("href", "#");//pageUrl(i)); ////tag.MergeAttribute("onclick", "pageing(this," + i + ",'" + fnData + "');"); ////tag.InnerHtml = i.ToString(); //if (i == pagingInfo.CurrentPage) // tag.AddCssClass("selected"); //result.Append(tag.ToString() + " "); } return MvcHtmlString.Create("共" + pagingInfo.TotalItems + "条,当前第" + pagingInfo.CurrentPage + "页,共" + pagingInfo.TotalPages + "页 " + result.ToString()); } } }
1.B.2,SelectInputHelpers.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Text; using System.Collections; using System.Reflection; namespace Core.HtmlHelpers { public static class SelectInputHelpers { public static MvcHtmlString SelectInput(this HtmlHelper html, string name, SelectList Options,string optionLabel=null, object htmlAttributes=null) { StringBuilder result = new StringBuilder("<select id="" + name+"" name=""+name+"""); if (htmlAttributes != null) { PropertyInfo[] pis = htmlAttributes.GetType().GetProperties(); foreach (PropertyInfo item in pis) { result.Append(" " + item.Name + "="" + item.GetValue(htmlAttributes, null) + """); } } result.Append(">"); if(optionLabel!=null) result.AppendLine("<option value="">" + optionLabel + "</option>"); foreach (var item in Options.Items) { var Value=item.GetType().GetProperty(Options.DataValueField).GetValue(item, null); var Text=item.GetType().GetProperty(Options.DataTextField).GetValue(item, null); if (Options.SelectedValue != null&&Value.ToString() == Options.SelectedValue.ToString()) result.AppendLine("<option value="" + Value + "" selected>" + Text + "</option>"); else result.AppendLine("<option value="" + Value + "">" + Text + "</option>"); } result.AppendLine("</select>"); return MvcHtmlString.Create(result.ToString());//"共" + pagingInfo.TotalItems + "条,当前第" + pagingInfo.CurrentPage + "页,共" + pagingInfo.TotalPages + "页 " + result.ToString()); } } }
1.B.3,TreeHelpers.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Text; using System.Collections.Specialized; using Core.WebHelper; namespace Core.HtmlHelpers { public static class TreeHelpers { public static MvcHtmlString Tree(this HtmlHelper html,Tree tree ) { IEnumerable<TreeNode> treeModels = tree.TreeNodes; StringBuilder sb=new StringBuilder(); var root = treeModels.Where(p => p.ParentTreeNodeID == null || p.ParentTreeNodeID == "" || p.ParentTreeNodeID == "0").ToArray(); var count = root.Count(); if (count > 0) { if(tree.ShowLine) sb.AppendLine("<ul class='ulDashed'>"); else sb.AppendLine("<ul >"); for (int i = 0; i < count; i++)// var item in root) { //HtmlString += "<li>";// +item.Name; if (i == count - 1) { if (tree.ShowLine) sb.AppendLine("<li class='last liDashed'>"); else sb.AppendLine("<li class='last'>"); } else { if (tree.ShowLine) sb.AppendLine("<li class='liDashed'>"); else sb.AppendLine("<li>"); } List<TreeNode> Sublist = treeModels.Where(p => p.ParentTreeNodeID == root[i].TreeNodeID).ToList();//.ModularFuns.ToList(); int SubCount = Sublist.Count(); #region 显示开始图标 if (SubCount > 0)//非叶节点 { if (tree.ExpentDepth > 0) sb.AppendLine("<span class='minus' ></span>");//+ else sb.AppendLine("<span class='plus'></span>");//+ //HtmlString += "<img src='/images/Tree/minus.gif'/>";//展开图标 } //else // sb.AppendLine("<span class='minus'></span>"); //else//叶节点 //{ // if (i == count - 1) // HtmlString += "<span class='bindPic checkBoxPic'></span>";// "<img src='/images/Tree/line2.gif'/>"; // else // HtmlString += "class='last'";// "<img src='/images/Tree/line3.gif'/>"; //} #endregion #region 复选框 //if(NVC["bCheck"]=="1") if (tree.ShowCheckBox == ShowCheckBoxs.Root || tree.ShowCheckBox == ShowCheckBoxs.All) sb.AppendLine("<span class='bindPic checkBoxPic'></span>"); #endregion #region 显示类型标记图标 if (SubCount > 0)//非叶节点 { if (tree.ExpentDepth > 0) sb.AppendLine("<span class='bindPic iconDirOpen'></span>");//+ else sb.AppendLine("<span class='bindPic iconDirClosed'></span>"); //sb.AppendLine("<span class='bindPic iconDirOpen'></span>");// "<img src='/images/Tree/folderopen.gif'/>";//展开图标 } else { sb.AppendLine("<span class='bindPic iconFile'></span>"); } #endregion #region a if (root[i].NodeDispType == NodeDispType.Alink) { //TagBuilder tag = new TagBuilder("a"); //创建<a>标签 //tag.MergeAttribute("href", "#");//pageUrl(i)); //tag.MergeAttribute("pathValue", "/" + root[i].Text); ////tag.MergeAttribute("onclick", "nav('" + root[i].Url + "')");//," + i + ");"); //tag.InnerHtml = root[i].Text; sb.AppendLine("<a href='#' " + root[i].htmlAttr + ">"+root[i].Text+"</a>"); //sb.AppendLine(tag.ToString()); } else { //sb.AppendLine("<span>"+root[i].Text +"</span>"); sb.AppendLine("<span " + root[i].htmlAttr + " pathValue='/" + root[i].Text + "'>" + root[i].Text + "</span>"); } #endregion sb.AppendLine(BindTree(root[i], tree,0,"/"+root[i].Text)); sb.AppendLine("</li>"); } sb.AppendLine("</ul>"); } MvcHtmlString mstr = new MvcHtmlString(sb.ToString()); return mstr; } private static string BindTree(TreeNode treeModel, Tree tree,int lev,string PathValue) { lev++; IEnumerable<TreeNode> treeModels = tree.TreeNodes; StringBuilder sb = new StringBuilder(); if (treeModel != null) { List<TreeNode> root = treeModels.Where(p => p.ParentTreeNodeID == treeModel.TreeNodeID).ToList();//.ModularFuns.ToList(); int count = root.Count; if (count > 0) { if (tree.ExpentDepth >= lev) { if (tree.ShowLine) sb.AppendLine("<ul class='ulDashed'>"); else sb.AppendLine("<ul >"); } else { if (tree.ShowLine) sb.AppendLine("<ul class=hidden ulDashed'>"); else sb.AppendLine("<ul class='hidden'>"); } for (int i = 0; i < count; i++)// var item in root) { if (i == count - 1) { if (tree.ShowLine) sb.AppendLine("<li class='last liDashed'>"); else sb.AppendLine("<li class='last'>"); //sb.AppendLine("<li class='last'>"); } else { // sb.AppendLine("<li>"); if (tree.ShowLine) sb.AppendLine("<li class='liDashed'>"); else sb.AppendLine("<li>"); } List<TreeNode> Sublist = treeModels.Where(p => p.ParentTreeNodeID == root[i].TreeNodeID).ToList();//.ModularFuns.ToList(); int SubCount = Sublist.Count(); #region 显示开始图标 if (SubCount > 0 )//非叶节点 { //HtmlString += "<img src='/images/Tree/minus.gif'/>";//展开图标 //sb.AppendLine("<span class='plus'></span>"); if (tree.ExpentDepth > lev) sb.AppendLine("<span class='minus'></span>");//+ else sb.AppendLine("<span class='plus'></span>");//+ } #endregion #region 复选框 if ((SubCount>0&&tree.ShowCheckBox == ShowCheckBoxs.Parent)||tree.ShowCheckBox == ShowCheckBoxs.All) sb.AppendLine("<span class='bindPic checkBoxPic' Value='"+root[i].Value+"' ></span>"); else if ((SubCount == 0 && tree.ShowCheckBox == ShowCheckBoxs.Leaf) || tree.ShowCheckBox == ShowCheckBoxs.All) sb.AppendLine("<span class='bindPic checkBoxPic' Value='" + root[i].Value + "'></span>"); #endregion #region 显示类型标记图标 if (SubCount > 0)//非叶节点 { if (tree.ExpentDepth > lev) sb.AppendLine("<span class='bindPic iconDirOpen'></span>");//+ else sb.AppendLine("<span class='bindPic iconDirClosed'></span>"); } else sb.AppendLine("<span class='bindPic iconFile'></span>");//文件图标 #endregion #region a //if (root[i].Url.Trim().Length > 0) //{ // //TagBuilder tag = new TagBuilder("a"); //创建<a>标签 // //tag.MergeAttribute("href", "#");//pageUrl(i)); // //tag.MergeAttribute("pathValue", PathValue + "/" + root[i].Text); // //tag.MergeAttribute("onclick", "nav('" + root[i].Url + "')");//," + i + ");"); // //tag.InnerHtml = root[i].Text; // sb.AppendLine(tag.ToString()); //} //else //{ // sb.AppendLine("<span "+root[i].htmlAttr+" pathValue='" + PathValue + "/" + root[i].Text + "'>" + root[i].Text + "</span>"); //} if (root[i].NodeDispType == NodeDispType.Alink) { //TagBuilder tag = new TagBuilder("a"); //创建<a>标签 //tag.MergeAttribute("href", "#");//pageUrl(i)); //tag.MergeAttribute("pathValue", "/" + root[i].Text); ////tag.MergeAttribute("onclick", "nav('" + root[i].Url + "')");//," + i + ");"); //tag.InnerHtml = root[i].Text; sb.AppendLine("<a href='#' " + root[i].htmlAttr + ">" + root[i].Text + "</a>"); //sb.AppendLine(tag.ToString()); } else { //sb.AppendLine("<span>"+root[i].Text +"</span>"); sb.AppendLine("<span " + root[i].htmlAttr + " pathValue='/" + root[i].Text + "'>" + root[i].Text + "</span>"); } #endregion sb.Append(BindTree(root[i], tree, lev, PathValue+"/"+root[i].Text)); sb.AppendLine("</li>"); //foreach (var item in list) //{ // sb.Append("<li>"); // TagBuilder tag = new TagBuilder("a"); //创建<a>标签 // tag.MergeAttribute("href", "#");//pageUrl(i)); // tag.MergeAttribute("onclick", "nav('/" + item.ControllName + "/" + item.ActionName + "')");//," + i + ");"); // tag.InnerHtml = item.Name; // sb.Append(tag.ToString()); // sb.Append("</li>"); // sb.Append(BindTree(item, treeModels)); //} } sb.Append("</ul>"); } } //MvcHtmlString mstr = new MvcHtmlString(sb.ToString()); return sb.ToString(); } //public static MvcHtmlString Tree(this HtmlHelper html, IEnumerable<ModularFun> treeModels) //{ // string HtmlString =""; // var root = treeModels.Where(p => p.ParentModularFunID == null).ToArray(); // var count = root.Count(); // if (count > 0) // { // HtmlString = "<ul>"; // for (int i = 0; i < count; i++)// var item in root) // { // //HtmlString += "<li>";// +item.Name; // if (i == count - 1) // { // HtmlString += "<li class='last'>"; // } // else // HtmlString += "<li>"; // List<ModularFun> Sublist = treeModels.Where(p => p.ParentModularFunID == root[i].ModularFunID).ToList();//.ModularFuns.ToList(); // int SubCount = Sublist.Count(); // #region 显示开始图标 // if (SubCount > 0)//非叶节点 // { // //HtmlString += "<img src='/images/Tree/minus.gif'/>";//展开图标 // HtmlString += "<span class='minus'></span>"; // } // //else//叶节点 // //{ // // if (i == count - 1) // // HtmlString += "<span class='bindPic checkBoxPic'></span>";// "<img src='/images/Tree/line2.gif'/>"; // // else // // HtmlString += "class='last'";// "<img src='/images/Tree/line3.gif'/>"; // //} // #endregion // #region 复选框 // //if(NVC["bCheck"]=="1") // HtmlString += "<span class='bindPic checkBoxPic'></span>"; // #endregion // #region 显示类型标记图标 // if (SubCount > 0)//非叶节点 // { // HtmlString += "<span class='bindPic iconDir'></span>";// "<img src='/images/Tree/folderopen.gif'/>";//展开图标 // } // else // { // HtmlString += "<span class='bindPic iconFile'></span>"; // } // #endregion // #region a // TagBuilder tag = new TagBuilder("a"); //创建<a>标签 // tag.MergeAttribute("href", "#");//pageUrl(i)); // tag.MergeAttribute("onclick", "nav('/" + root[i].ControllName + "/" + root[i].ActionName + "')");//," + i + ");"); // tag.InnerHtml = root[i].Name; // HtmlString += tag.ToString(); // #endregion // HtmlString += BindTree(root[i], treeModels); // HtmlString += "</li>"; // } // HtmlString += "</ul>"; // } // MvcHtmlString mstr = new MvcHtmlString(HtmlString.ToString()); // return mstr; //} //private static MvcHtmlString BindTree(ModularFun treeModel, IEnumerable<ModularFun> treeModels) //{ // StringBuilder sb = new StringBuilder(); // if (treeModel != null) // { // List<ModularFun> root = treeModels.Where(p => p.ParentModularFunID == treeModel.ModularFunID).ToList();//.ModularFuns.ToList(); // int count = root.Count; // if (count > 0) // { // sb.AppendLine("<ul>"); // for (int i = 0; i < count; i++)// var item in root) // { // if (i == count - 1) // { // sb.AppendLine("<li class='last'>"); // } // else // sb.AppendLine("<li>"); // List<ModularFun> Sublist = treeModels.Where(p => p.ParentModularFunID == root[i].ModularFunID).ToList();//.ModularFuns.ToList(); // int SubCount = Sublist.Count(); // #region 显示开始图标 // if (SubCount > 0)//非叶节点 // { // sb.AppendLine("<span class='minus'></span>");//展开图标 // } // //else//叶节点 // //{ // // if (i == count - 1) // // sb.AppendLine("<img src='/images/Tree/lastli.gif'/>"); // // else // // sb.AppendLine("<img src='/images/Tree/line3.gif'/>"); // //} // #endregion // #region 复选框 // sb.AppendLine("<span class='bindPic checkBoxPic'></span>"); // #endregion // #region 显示类型标记图标 // if (SubCount > 0)//非叶节点 // { // sb.AppendLine("<span class='bindPic iconDir'></span>");//展开图标 // } // else // sb.AppendLine("<span class='bindPic iconFile'></span>");//展开图标 // #endregion // #region a // TagBuilder tag = new TagBuilder("a"); //创建<a>标签 // tag.MergeAttribute("href", "#");//pageUrl(i)); // tag.MergeAttribute("onclick", "nav('/" + root[i].ControllName + "/" + root[i].ActionName + "')");//," + i + ");"); // tag.InnerHtml = root[i].Name; // sb.AppendLine(tag.ToString()); // #endregion // sb.Append(BindTree(root[i], treeModels)); // sb.AppendLine("</li>"); // //foreach (var item in list) // //{ // // sb.Append("<li>"); // // TagBuilder tag = new TagBuilder("a"); //创建<a>标签 // // tag.MergeAttribute("href", "#");//pageUrl(i)); // // tag.MergeAttribute("onclick", "nav('/" + item.ControllName + "/" + item.ActionName + "')");//," + i + ");"); // // tag.InnerHtml = item.Name; // // sb.Append(tag.ToString()); // // sb.Append("</li>"); // // sb.Append(BindTree(item, treeModels)); // //} // } // sb.Append("</ul>"); // } // } // MvcHtmlString mstr = new MvcHtmlString(sb.ToString()); // return mstr; //} } }
1.B.4,
1.C,下载地址返回顶部 |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |