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 = ; 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 == "").ToArray();
var count = root.Count();
if (count > )
{
if(tree.ShowLine)
sb.AppendLine("<ul class='ulDashed'>");
else
sb.AppendLine("<ul >");
for (int i = ; i < count; i++)// var item in root)
{
//HtmlString += "<li>";// +item.Name;
if (i == count - )
{
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 > )//非叶节点
{
if (tree.ExpentDepth > )
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 > )//非叶节点
{
if (tree.ExpentDepth > )
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,,"/"+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 > )
{
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 = ; i < count; i++)// var item in root)
{
if (i == count - )
{
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 > )//非叶节点
{
//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>&&tree.ShowCheckBox == ShowCheckBoxs.Parent)||tree.ShowCheckBox == ShowCheckBoxs.All)
sb.AppendLine("<span class='bindPic checkBoxPic' Value='"+root[i].Value+"' ></span>");
else if ((SubCount == && tree.ShowCheckBox == ShowCheckBoxs.Leaf) || tree.ShowCheckBox == ShowCheckBoxs.All)
sb.AppendLine("<span class='bindPic checkBoxPic' Value='" + root[i].Value + "'></span>");
#endregion #region 显示类型标记图标 if (SubCount > )//非叶节点
{
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/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

cs-HtmlHelpers的更多相关文章

  1. [C#] 剖析 AssemblyInfo.cs - 了解常用的特性 Attribute

    剖析 AssemblyInfo.cs - 了解常用的特性 Attribute [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5944391.html 序 ...

  2. Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结

    Atitit 软件架构方法的进化与演进cs bs soa roa  msa  attilax总结 1.1. 软件体系架构是沿着单机到 CS 架构,再到 BS 的三层架构甚至多层架构逐步发展过来的,关于 ...

  3. 从java文件和CS文件里查询方法使用次数工具

    前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...

  4. 关于 WP 开发中.xaml 与.xaml.cs 的关系

    今天我们先来看一下在WP8.1开发中最长见到的几个文件之间的关系.比较论证,在看这个问题之前我们简单看看.NET平台其他两个不同的框架: Windows Forms 先看看Window Forms中的 ...

  5. .net 用户控件ascx.cs注册js脚本代码无效果

    在.net web项目中碰到一个比较奇怪的问题,网上没找到解决方案,先自己mark一下 问题描述: 添加一个用户控件ascx,在后端.cs添加js注册脚本,执行后没有弹出框 注册脚本为: this.P ...

  6. DateHelper.cs日期时间操作辅助类C#

    //==================================================================== //** Copyright © classbao.com ...

  7. 仅用aspx文件实现Ajax调用后台cs程序。(实例)

    仅用aspx文件实现Ajax调用后台cs无刷新程序.(实例) 两个文件:aaa.aspx 和aaa.aspx.cs 一.aaa.aspx <script type="text/java ...

  8. Etw EventSourceProvider_EventsProducer.cs OopConsoleTraceEventListenerMonitor_TraceControllerEventsConsumer.cs

    // EventSourceProvider_EventsProducer.cs /* /r:"D:\Microshaoft.Nuget.Packages\Microsoft.Diagnos ...

  9. WPF根据Oracle数据库的表,生成CS文件小工具

    开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...

  10. 用CS的思维可以指导BS的项目吗?

    最近项目上线,越来越觉的让人不爽.1.在录数据的界面领导要求用Enter键一路打下来,用户不用操作鼠标数据就可以录完. 2.CS的项目中用快捷键的确很方便,但是大家在BS的项目中也用快捷键吗? 反正我 ...

随机推荐

  1. USB接口无法识别设备

    http://windows.microsoft.com/zh-cn/windows/answers?tId=14fa1e44-0a19-48ef-9ba7-b7e512a837a4 小琼子 提问 2 ...

  2. IOS工程自动打包并发布脚本实现

    http://blog.csdn.net/ccf0703/article/details/8588667 文章首发地址:http://webfrogs.me/2013/02/18/ios-automa ...

  3. virtualbox网络相关

    前言 Baidu/google了n多次, 效果不佳. 网上说的都是比较老的virtualbox版本,有的是默认就bridge方式(2.2.0前), 有的不是bridge方式的,是通过工具uml-uti ...

  4. MYSQL是什么?

    #转载请联系 数据库主要分为两大类,关系型数据库和非关系型数据库.MYSQL是关系型数据库. 一.什么是关系型数据库呢? 1.关系型数据库,本质上是使用一张二维表来表示关系,和Excel表类似. 2. ...

  5. MYSQL 的异常CRASH事件处理

    检查问题的过程****************************************************************************************** ps ...

  6. AC日记——绿豆蛙的归宿 codevs 2488

    绿豆蛙的归宿 思路: topsort+期望dp: 代码: #include <cstdio> #include <cstring> #include <iostream& ...

  7. spark技术热点问题互动问答2

    决胜云计算大数据时代” Spark亚太研究院100期公益大讲堂 [第3期互动问答分享] Q1: groupbykey是排好序的吗?分组排序怎么实现? groupByKey在一个由(K,V)对组成的数据 ...

  8. 使用base64对图片的二进制进行编码,使其可以利用ajax进行显示

    有时候我们需要动态的将图片的二进制在页面上进行显示,如我们需要弄一个验证码的功能,那么如果我们的验证码的图片在后台得到的是该图片的二进制,那么当我们需要在页面上点击一个按钮利用ajax进行切换的时候, ...

  9. 数据排序 第一讲( 各种排序方法 结合noi题库1.10)

    选择排序 1.基本思想:每一趟从待排序的数据元素选出最小或最大的一个元素,数按序排放在待排序的元素的最前端,直到全部待排序的元素排完 2.基本代码 px(int r[]) { ;i<n;i++) ...

  10. CSS选择符——分门别类

    CSS选择符--分门别类 有时候,老是会对一些CSS选择器模模糊糊,傻傻分不清.今天花了点时间整理了一下,感觉世界清静了不少. 用XMIND做出了思维导图: 主要有11中选择器:元素.类ID.后代.子 ...