ylbtech-Unitity: cs-Panination

Pager.cs

IPagingOption.cs IPagedList.cs

PagingOption.cs PagedList.cs

PagingExtensions.cs

1.A,效果图返回顶部
 
1.B,源代码返回顶部
1.B.1,Pager.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Routing;
using Healthcare.Framework.Web.URL; namespace Healthcare.Framework.Web.Mvc.Pagination
{
public class Pager
{
private ViewContext viewContext;
private int currentPage;
private int pageCount;
private RouteValueDictionary pageLinkValueDictionary; private readonly int pageSize;
private readonly int totalItemCount;
private readonly RouteValueDictionary linkWithoutPageValuesDictionary;
private readonly AjaxOptions ajaxOptions;
private readonly string sortBy;
private readonly bool? sortDescending; public Pager(ViewContext viewContext, int pageSize, int currentPage, int totalItemCount, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions)
{
this.viewContext = viewContext;
this.pageSize = pageSize;
this.currentPage = currentPage;
this.totalItemCount = totalItemCount;
this.linkWithoutPageValuesDictionary = valuesDictionary;
this.ajaxOptions = ajaxOptions;
this.ensureCollectionPageLinkValue();
} public Pager(ViewContext viewContext, int pageSize, int currentPage, int totalItemCount, string sortBy, bool? sortDescending, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions)
{
this.viewContext = viewContext;
this.pageSize = pageSize;
this.currentPage = currentPage;
this.totalItemCount = totalItemCount;
this.sortBy = sortBy;
this.sortDescending = sortDescending;
this.linkWithoutPageValuesDictionary = valuesDictionary;
this.ajaxOptions = ajaxOptions;
this.ensureCollectionPageLinkValue();
} public HtmlString RenderHtml()
{
pageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
if (pageCount == ) pageCount = ;
const int nrOfPagesToDisplay = ; if (pageCount < currentPage)
currentPage = pageCount; var sb = new StringBuilder(); // Previous
sb.Append("<ul class=\"pagination pull-right\">");
sb.Append(currentPage > ? GeneratePageLink("«", , "first") : "<li class=\"first disabled\"><a>«</a></li>");
sb.Append(currentPage > ? GeneratePageLink("‹", currentPage - , "previous") : "<li class=\"previous disabled\"><a>‹</a></li>"); var start = ;
var end = pageCount; if (pageCount > nrOfPagesToDisplay)
{
var middle = (int)Math.Ceiling(nrOfPagesToDisplay / 2d) - ;
var below = (currentPage - middle);
var above = (currentPage + middle); if (below < )
{
above = nrOfPagesToDisplay;
below = ;
}
else if (above > (pageCount - ))
{
above = pageCount;
below = (pageCount - nrOfPagesToDisplay);
} start = below;
end = above;
} if (start > )
{
sb.Append(GeneratePageLink("", ));
sb.Append(GeneratePageLink("", ));
sb.Append("<li class=\"disabled\"><a>...</a></li>");
} for (var i = start; i <= end; i++)
{
if (i == currentPage || (currentPage <= && i == ))
{
sb.AppendFormat("<li class=\"active\"><a>{0}</a></li>", i);
}
else
{
sb.Append(GeneratePageLink(i.ToString(), i));
}
}
//if (end < (pageCount - 5))
//{
// sb.Append("<li class=\"disabled\"><a>...</a></li>");
// sb.Append(GeneratePageLink((pageCount - 3).ToString(), pageCount - 3));
// sb.Append(GeneratePageLink((pageCount - 2).ToString(), pageCount - 2));
// sb.Append(GeneratePageLink((pageCount - 1).ToString(), pageCount - 1));
// sb.Append(GeneratePageLink(pageCount.ToString(), pageCount));
//} if (end < pageCount)//后面还有其它页码
{
int tempmin = pageCount - ; sb.Append("<li class=\"disabled\"><a>...</a></li>");
for (int k = tempmin; k <= pageCount; k++)
{
sb.Append(GeneratePageLink(k.ToString(), k));
}
//sb.Append(GeneratePageLink(pageCount.ToString(), pageCount));
} // Next
sb.Append(currentPage < pageCount ? GeneratePageLink("›", (currentPage + ), "next") : "<li class=\"next disabled\"><a>›</a></li>");
sb.Append(currentPage < pageCount ? GeneratePageLink("»", pageCount, "last") : "<li class=\"last disabled\"><a>»</a></li>");
sb.Append("</ul>"); return new HtmlString(sb.ToString());
} private string GeneratePageLink(string linkText, int pageNumber, string classText = "")
{
if (pageLinkValueDictionary.ContainsKey("Page"))
{
pageLinkValueDictionary.Remove("Page");
} pageLinkValueDictionary.Add("Page", pageNumber); // 'Render' virtual path.
var virtualPathForArea = RouteTable.Routes.GetVirtualPathForArea(viewContext.RequestContext, pageLinkValueDictionary); if (virtualPathForArea == null)
return null; var stringBuilder = new StringBuilder("<li class=\"" + classText + "\"><a"); if (ajaxOptions != null)
foreach (var ajaxOption in ajaxOptions.ToUnobtrusiveHtmlAttributes())
stringBuilder.AppendFormat(" {0}=\"{1}\"", ajaxOption.Key, ajaxOption.Value); stringBuilder.AppendFormat(" href=\"{0}\">{1}</a></li>", virtualPathForArea.VirtualPath, linkText); return stringBuilder.ToString();
} public HtmlString RenderGotoBaseUrl()
{
if (pageLinkValueDictionary.ContainsKey("Page"))
{
pageLinkValueDictionary.Remove("Page");
} var virtualPathForArea = RouteTable.Routes.GetVirtualPathForArea(viewContext.RequestContext, pageLinkValueDictionary); return new HtmlString(virtualPathForArea.VirtualPath);
} public HtmlString RenderSwitchPageSizeBaseUrl()
{
if (pageLinkValueDictionary.ContainsKey("PageSize"))
{
pageLinkValueDictionary.Remove("PageSize");
} if (pageLinkValueDictionary.ContainsKey("Page"))
{
pageLinkValueDictionary.Remove("Page");
} var virtualPathForArea = RouteTable.Routes.GetVirtualPathForArea(viewContext.RequestContext, pageLinkValueDictionary); return new HtmlString(virtualPathForArea.VirtualPath);
} private void ensureCollectionPageLinkValue()
{
pageLinkValueDictionary = new RouteValueDictionary(linkWithoutPageValuesDictionary) { { "SortBy", sortBy }, { "SortDescending", sortDescending } };
//{ { "Page", pageNumber }, { "PageSize", pageSize }, }; Dictionary<string, string> dict = new Dictionary<string, string>();
QueryStringHelper.ExtractQueryStringValuesFromUri(viewContext.HttpContext.Request.Url, ref dict);
dict.Keys.ToList().ForEach(key =>
{
if (!pageLinkValueDictionary.ContainsKey(key))
{
pageLinkValueDictionary.Add(key, dict[key]);
}
}); // To be sure we get the right route, ensure the controller and action are specified.
var routeDataValues = viewContext.RequestContext.RouteData.Values;
routeDataValues.Keys.ToList().ForEach(key =>
{
if (!pageLinkValueDictionary.ContainsKey(key))
{
pageLinkValueDictionary.Add(key, routeDataValues[key]);
}
}); }
}
}

1.B.2,IPagingOption.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Routing; namespace Healthcare.Framework.Web.Mvc.Pagination
{
public interface IPagingOption
{
int Page { get; set; }
int PageSize { get; set; }
int? TotalCount { get; set; } string SortBy { get; set; }
bool? SortDescending { get; set; }
string OrderByExpression { get; } RouteValueDictionary RouteValues { get; set; }
}
}

1.B.3,IPagedList.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Routing; namespace Healthcare.Framework.Web.Mvc.Pagination
{
public interface IPagedList<T> : IList<T>
{
int PageCount { get; }
int TotalItemCount { get; }
int PageIndex { get; }
int PageNumber { get; }
int PageSize { get; }
bool HasPreviousPage { get; }
bool HasNextPage { get; }
bool IsFirstPage { get; }
bool IsLastPage { get; } string SortBy { get; }
bool? SortDescending { get; } RouteValueDictionary RouteValues { get; }
}
}

1.B.4,PagingOption.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Routing; namespace Healthcare.Framework.Web.Mvc.Pagination
{
public class PagingOption : IPagingOption
{
public int Page { get; set; }
public int PageSize { get; set; }
public int? TotalCount { get; set; }
public Int32? IsPagination { get; set; }
public string ActionName { get; set; }
public string SortBy { get; set; }
public bool? SortDescending { get; set; } public bool ShowSummary { get; set; }
public bool ShowGoto { get; set; }
public bool ShowPageSize { get; set; } public PagingOption()
{
TotalCount = ;
PageSize = ;
Page = ;
} public RouteValueDictionary RouteValues { get; set; } public string OrderByExpression
{
get
{
return this.SortDescending.HasValue && this.SortDescending.Value ? this.SortBy + " desc" : this.SortBy + " asc";
}
} public int PageTotal
{
get
{
if (TotalCount == null)
{
return (int)Math.Ceiling( / (double)PageSize);
}
return (int)Math.Ceiling(TotalCount.Value / (double)PageSize); }
}
}
}

1.B.5,PagedList.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Dynamic;
using System.Text;
using System.Threading.Tasks;
using System.Web.Routing; namespace Healthcare.Framework.Web.Mvc.Pagination
{
public class PagedList<T> : List<T>, IPagedList<T>
{
public PagedList(IEnumerable<T> source, IPagingOption option)
: this(source.AsQueryable(), option)
{
} public PagedList(IQueryable<T> source, IPagingOption option)
{
if (option == null)
throw new ArgumentOutOfRangeException("PagingOption", "Value can not be null.");
if (option.Page < )
throw new ArgumentOutOfRangeException("index", "Value must be greater than 0.");
if (option.PageSize < )
throw new ArgumentOutOfRangeException("pageSize", "Value must be greater than 1."); if (source == null)
source = new List<T>().AsQueryable();
var realTotalCount = source.Count(); PageSize = option.PageSize;
PageIndex = option.Page;
RouteValues = option.RouteValues;
TotalItemCount = option.TotalCount.HasValue ? option.TotalCount.Value : realTotalCount;
PageCount = TotalItemCount > ? (int)Math.Ceiling(TotalItemCount / (double)PageSize) : ; SortBy = option.SortBy;
SortDescending = option.SortDescending;
if (!string.IsNullOrEmpty(option.SortBy))
source = source.OrderBy(option.OrderByExpression); HasPreviousPage = (PageIndex > );
HasNextPage = (PageIndex < (PageCount - ));
IsFirstPage = (PageIndex <= );
IsLastPage = (PageIndex >= (PageCount - )); if (TotalItemCount <= )
return; var realTotalPages = (int)Math.Ceiling(realTotalCount / (double)PageSize); if (realTotalCount < TotalItemCount && realTotalPages <= PageIndex)
AddRange(source.Skip((realTotalPages - ) * PageSize).Take(PageSize));
else
AddRange(source.Skip(PageIndex * PageSize).Take(PageSize));
} #region IPagedList Members public int PageCount { get; private set; }
public int TotalItemCount { get; private set; }
public int PageIndex { get; private set; }
public int PageNumber { get { return PageIndex + ; } }
public int PageSize { get; private set; }
public bool HasPreviousPage { get; private set; }
public bool HasNextPage { get; private set; }
public bool IsFirstPage { get; private set; }
public bool IsLastPage { get; private set; }
public string SortBy { get; private set; }
public bool? SortDescending { get; private set; }
public RouteValueDictionary RouteValues { get; set; }
#endregion
}
}

1.B.6,PagingExtensions.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;
using System.Web.Mvc.Html;
using System.Web.Routing; namespace Healthcare.Framework.Web.Mvc.Pagination
{
public static class PagingExtensions
{
#region AjaxHelper extensions public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, AjaxOptions ajaxOptions)
{
return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, null, ajaxOptions);
} public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string sortBy, bool? sortDescending, string actionName, AjaxOptions ajaxOptions)
{
return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, sortBy, sortDescending, actionName, null, ajaxOptions);
} public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string actionName, AjaxOptions ajaxOptions)
{
return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, actionName, null, ajaxOptions);
} public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, object values, AjaxOptions ajaxOptions)
{
return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, new RouteValueDictionary(values), ajaxOptions);
} public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string actionName, object values, AjaxOptions ajaxOptions)
{
return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, null, actionName, new RouteValueDictionary(values), ajaxOptions);
} public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions)
{
return Pager(ajaxHelper, pageSize, currentPage, totalItemCount, null, valuesDictionary, ajaxOptions);
} public static HtmlString Pager(this AjaxHelper ajaxHelper, int pageSize, int currentPage, int totalItemCount, string sortBy, bool? sortDescending, string actionName, RouteValueDictionary valuesDictionary, AjaxOptions ajaxOptions)
{
if (valuesDictionary == null)
{
valuesDictionary = new RouteValueDictionary();
}
if (actionName != null)
{
if (valuesDictionary.ContainsKey("action"))
{
throw new ArgumentException("The valuesDictionary already contains an action.", "actionName");
}
valuesDictionary.Add("action", actionName);
}
var pager = new Pager(ajaxHelper.ViewContext, pageSize, currentPage, totalItemCount, sortBy, sortDescending, valuesDictionary, ajaxOptions);
return pager.RenderHtml();
} #endregion #region HtmlHelper extensions public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, null);
} public static HtmlString PagerT(this HtmlHelper htmlHelper, PagingOption options)
{
if (options == null)
return new HtmlString(""); if (options.RouteValues == null)
{
options.RouteValues = new RouteValueDictionary();
} var pager = new PagerT(htmlHelper.ViewContext, options.PageSize, options.Page, options.TotalCount.HasValue ? options.TotalCount.Value : , options.SortBy, options.SortDescending, options.RouteValues, null);
return pager.RenderHtml();
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string sortBy, bool? sortDescending)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, sortBy, sortDescending, null, null);
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string actionName)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, actionName, null);
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, object values)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, new RouteValueDictionary(values));
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string actionName, object values)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, null, actionName, new RouteValueDictionary(values));
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, RouteValueDictionary valuesDictionary)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, null, valuesDictionary);
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string sortBy, bool? sortDescending, string actionName)
{
return Pager(htmlHelper, pageSize, currentPage, totalItemCount, sortBy, sortDescending, actionName, null);
} public static HtmlString Pager(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, string sortBy, bool? sortDescending, string actionName, RouteValueDictionary valuesDictionary)
{
if (valuesDictionary == null)
{
valuesDictionary = new RouteValueDictionary();
}
if (actionName != null)
{
if (valuesDictionary.ContainsKey("action"))
{
throw new ArgumentException("The valuesDictionary already contains an action.", "actionName");
}
valuesDictionary.Add("action", actionName);
}
var pager = new Pager(htmlHelper.ViewContext, pageSize, currentPage, totalItemCount, sortBy, sortDescending, valuesDictionary, null);
return pager.RenderHtml();
} public static HtmlString Pager(this HtmlHelper htmlHelper, PagingOption options)
{
if (options == null)
return new HtmlString(""); if (options.RouteValues == null)
{
options.RouteValues = new RouteValueDictionary();
} var pager = new Pager(htmlHelper.ViewContext, options.PageSize, options.Page, options.TotalCount.HasValue ? options.TotalCount.Value : , options.SortBy, options.SortDescending, options.RouteValues, null);
return pager.RenderHtml();
} public static HtmlString PagerGotoURL(this HtmlHelper htmlHelper, PagingOption options)
{
if (options == null)
return new HtmlString(""); if (options.RouteValues == null)
{
options.RouteValues = new RouteValueDictionary();
} var pager = new Pager(htmlHelper.ViewContext, options.PageSize, options.Page, options.TotalCount.HasValue ? options.TotalCount.Value : , options.SortBy, options.SortDescending, options.RouteValues, null);
return pager.RenderGotoBaseUrl();
} public static HtmlString PagerGotoURL(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, object values = null)
{
PagingOption options = new PagingOption()
{
Page = ,
PageSize = pageSize,
TotalCount = totalItemCount,
RouteValues = new RouteValueDictionary(values)
};
return PagerGotoURL(htmlHelper, options);
} public static HtmlString PagerSwitchPageSizeBaseUrl(this HtmlHelper htmlHelper, PagingOption options)
{
if (options == null)
return new HtmlString(""); if (options.RouteValues == null)
{
options.RouteValues = new RouteValueDictionary();
} var pager = new Pager(htmlHelper.ViewContext, options.PageSize, options.Page, options.TotalCount.HasValue ? options.TotalCount.Value : , options.SortBy, options.SortDescending, options.RouteValues, null);
return pager.RenderSwitchPageSizeBaseUrl();
} public static HtmlString PagerSwitchPageSizeBaseUrl(this HtmlHelper htmlHelper, int pageSize, int currentPage, int totalItemCount, object values = null)
{
PagingOption options = new PagingOption()
{
Page = ,
PageSize = pageSize,
TotalCount = totalItemCount,
RouteValues = new RouteValueDictionary(values)
};
return PagerSwitchPageSizeBaseUrl(htmlHelper, options);
} #endregion #region ActionLink extensions public static HtmlString ActionLink<T>(this AjaxHelper ajaxHelper, string name, string actionName, IPagedList<T> model, AjaxOptions ajaxOptions)
{
var sortDescending = model.SortBy != null && model.SortBy.Equals(name) && model.SortDescending.HasValue && model.SortDescending.Value ? false : true;
var routeValues = new RouteValueDictionary();
routeValues.Add("SortBy", name);
routeValues.Add("SortDescending", sortDescending); if (model.RouteValues != null)
{
foreach (var r in model.RouteValues)
{
routeValues.Add(r.Key, r.Value);
}
} IDictionary<string, object> htmlAttributes = new Dictionary<string, object>(); var css = "";
if (!string.IsNullOrEmpty(model.SortBy) && model.SortBy.Equals(name))
{
if (model.SortDescending.HasValue && model.SortDescending.Value)
css = "sort-desc";
else
css = "sort-asc";
}
else
css = "sort-off";
htmlAttributes.Add("class", css); return ajaxHelper.ActionLink(name, actionName, routeValues, ajaxOptions, htmlAttributes);
} public static HtmlString ActionLink<T>(this AjaxHelper ajaxHelper, string label, string name, string actionName, IPagedList<T> model, AjaxOptions ajaxOptions)
{
var sortDescending = model.SortBy != null && model.SortBy.Equals(name) && model.SortDescending.HasValue && model.SortDescending.Value ? false : true;
var routeValues = new RouteValueDictionary();
routeValues.Add("SortBy", name);
routeValues.Add("SortDescending", sortDescending); if (model.RouteValues != null)
{
foreach (var r in model.RouteValues)
{
routeValues.Add(r.Key, r.Value);
}
} IDictionary<string, object> htmlAttributes = new Dictionary<string, object>(); var css = "";
if (!string.IsNullOrEmpty(model.SortBy) && model.SortBy.Equals(name))
{
if (model.SortDescending.HasValue && model.SortDescending.Value)
css = "sort-desc";
else
css = "sort-asc";
}
else
css = "sort-off";
htmlAttributes.Add("class", css); return ajaxHelper.ActionLink(label, actionName, routeValues, ajaxOptions, htmlAttributes);
} public static HtmlString ActionLink<T>(this HtmlHelper htmlHelper, string name, string actionName, IPagedList<T> model)
{
var sortDescending = model.SortBy != null && model.SortBy.Equals(name) && model.SortDescending.HasValue && model.SortDescending.Value ? false : true;
var routeValues = new { SortBy = name, SortDescending = sortDescending }; var css = "";
if (!string.IsNullOrEmpty(model.SortBy) && model.SortBy.Equals(name))
{
if (model.SortDescending.HasValue && model.SortDescending.Value)
css = "sort-desc";
else
css = "sort-asc";
}
else
css = "sort-off";
var htmlAttributes = new { @class = css };
return htmlHelper.ActionLink(name, actionName, routeValues, htmlAttributes);
} #endregion #region IQueryable<T> extensions public static IPagedList<T> ToPagedList<T>(this IQueryable<T> source, IPagingOption option)
{
return new PagedList<T>(source, option);
} #endregion #region IEnumerable<T> extensions public static IPagedList<T> ToPagedList<T>(this IEnumerable<T> source, IPagingOption option)
{
return new PagedList<T>(source, option);
} #endregion
}
}

1.B.7,

1.C,下载地址返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

cs-Panination的更多相关文章

  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. bzoj 1942 斜率优化DP

    首先我们贪心的考虑,对于某一天来说,我们只有3中策略,第一种为不做任何行动,这时的答案与前一天相同,第二种为将自己的钱全部换成a,b货币,因为如果换a,b货币,代表在之后的某一天卖出去后会赚钱,那么当 ...

  2. 安全测试===Mysql 注入技巧学习 MySQL注入技巧(1)

    默认存在的数据库: mysql 需要root权限读取 information_schema 在5以上的版本中存在 测试是否存在注入方法 假:表示查询是错误的 (MySQL 报错/返回页面与原来不同) ...

  3. phpstorm+xdebug详解

    1.run->edit configurations StartUrl最好是网址,不然容易出错,Server选择的是配置时添加的Servers,详可参考:http://www.cnblogs.c ...

  4. 几个很好的OJ网站

    很友好的OJ网站(OJ是open judge,在线评测) POJ 北京大学ACM ZOJ 浙江大学ACM WOJ  武汉大学ACM(一个题目提交通过后,可以查看通过该题的所有代码) 唯一不好的地方是题 ...

  5. [BZOJ2553][BeiJing2011]禁忌 dp+AC自动机+矩阵快速幂

    2553: [BeiJing2011]禁忌 Time Limit: 20 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 1206  Solved ...

  6. HDU 6354.Everything Has Changed-简单的计算几何、相交相切圆弧的周长 (2018 Multi-University Training Contest 5 1005)

    6354.Everything Has Changed 就是计算圆弧的周长,总周长=大圆周长+相交(相切)部分的小圆的弧长-覆盖掉的大圆的弧长. 相交部分小圆的弧长直接求出来对应的角就可以,余弦公式, ...

  7. IActionResult

  8. (21)python Anaconda

    1.安装 Anaconda下载镜像      --官网下载太慢 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ 下载安装后 2.添加第三方源 管 ...

  9. Problem A: 英雄无敌3(1)【dp/待补】

      Problem A: 英雄无敌3(1) Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 86  Solved: 16[Submit][Status][ ...

  10. HDU 多校1.4

    Division Game Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...