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. 【洛谷 P4777】 【模板】扩展中国剩余定理(EXCRT)

    注意一下:: 题目是 \[x≡b_i\pmod {a_i}\] 我总是习惯性的把a和b交换位置,调了好久没调出来,\(qwq\). 本题解是按照 \[x≡a_i\pmod {b_i}\] 讲述的,请注 ...

  2. IPC网络高清摄像机基础知识4(Sensor信号输出YUV、RGB、RAW DATA、JPEG 4种方式区别) 【转】

    转自:http://blog.csdn.net/times_poem/article/details/51682785 [-] 一 概念介绍 二 两个疑问 三 RAW和JPEG的区别 1 概念说明 3 ...

  3. POJ2479(最长连续子序列和)

    Maximum sum Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 37035   Accepted: 11551 Des ...

  4. (十一)__LINE__、__FUNCTION__的使用

    单片机中也可以用__LINE和__FUNCTION__进行异常信息打印,分别代表当前代码行数和当前代码函数名 printf("line:%d\r\n",__LINE__); pri ...

  5. echarts 图表建立步骤

    需要引用的文件 <script src="web/mobile/js/jquery-1.8.3.min.js"></script> <script s ...

  6. AC日记——【清华集训2014】奇数国 uoj 38

    #38. [清华集训2014]奇数国 思路: 题目中的number与product不想冲: 即为number与product互素: 所以,求phi(product)即可: 除一个数等同于在模的意义下乘 ...

  7. EASYUI datagrid批量修改与提交

    http://www.cnblogs.com/szytwo/archive/2012/08/29/2662169.html 前台主要代码: <script type="text/jav ...

  8. SQL 插入多行数据语句整理

     参考别人的,希望对大家有用. 1.只是插入简单的有限行数据时用: insert 要插入的表名(列名1,列名2,....) select '列名1需要的数据','列名2需要的数据',... union ...

  9. scrapy模拟请求头

    import random USER_AGENT_LIST=[ 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, lik ...

  10. CvScalar

    CvScalar定义可存放1—4个数值的数值,其结构如下. typedef struct CvScalar{    double val[4];}CvScalar; ----------------- ...