asp.net开发中常用到的方法三, 分页,生成静态方法 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; using System.Xml; using System.Data.Common; using System.Reflection; using System.Security.Cryptography; using System.IO; using System.Drawing; using System.Text; using System.Text.RegularExpressions; using System.Net.Mail; using System.Net; namespace SQLHelper { public class Helper { //获得连接 public static string _connString = ConfigurationManager.AppSettings["connectionString"].ToString(); #region 根据条件获得DataTable public static DataTable getInfo(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values, bool isorder, string orderValue, bool isPage, int pageSize, int pageIndex) { DataTable dt = new DataTable(); if (filed.Length == parametersList.Length && filed.Length == filetype.Length) { string order = string.Empty; if (!"".Equals(orderValue)) { order += " order by " + orderValue; if (!isorder) { order += " desc"; } } string sql = "select * from " + tablename + " where "; SqlParameter[] par = new SqlParameter[values.Length]; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); sql += order; } else { sql += "1=1 "; sql += order; } SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); if (isPage) { int start = (pageIndex - 1) * pageSize; int end = pageSize; dp.Fill(ds, start, end, "新闻表"); } else { dp.Fill(ds); } dt = ds.Tables[0]; } catch (Exception exx) { throw exx; } finally { con.Close(); } } return dt; } #endregion public static string getInfo1(string sql, bool isorder, string orderValue, object dl, bool isPage, int pageSize, int pageIndex, string yemian) { StringBuilder result = new StringBuilder(); DataTable dt = new DataTable(); SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); if (isPage) { if (yemian.IndexOf("?") == -1) { yemian += "?"; } else { yemian += "&"; } int start = (pageIndex - 1) * pageSize; int end = pageSize; dp.Fill(ds, start, end, "新闻表"); DataSet ds1 = new DataSet(); dp.Fill(ds1); int total = ds1.Tables[0].Rows.Count;//总条数 int page_total = (total % pageSize) == 0 ? (total / pageSize) : (total / pageSize + 1);//总页数 int end_page = page_total;//最后一页 result.Append("<div style="/" mce_style="/""height: 16px; padding-top: 5px; float: left; font-size:12px; font-family:Verdana;/">"); result.Append("共" + page_total + "页 | 当前第" + pageIndex + "页 |"); if (pageIndex > 1) { result.Append(" <a href="/" mce_href="/""" + yemian + "pageIndex=1/" style="/" mce_style="/"" text-decoration:none/">首页</a> |"); } else { result.Append(" 首页 |"); } if (pageIndex > 1) { result.Append(" <a href="/" mce_href="/""" + yemian + "pageIndex=" + (pageIndex - 1) + "/" style="/" mce_style="/"" text-decoration:none/">上一页</a> |"); } else { result.Append(" 上一页 |"); } if (pageIndex < end_page) { result.Append(" <a href="/" mce_href="/""" + yemian + "pageIndex=" + (pageIndex + 1) + "/" style="/" mce_style="/""text-decoration:none/">下一页</a> |"); } else { result.Append(" 下一页 |"); } if (pageIndex < page_total) { result.Append(" <a href="/" mce_href="/""" + yemian + "pageIndex=" + page_total + "/" style="/" mce_style="/"" text-decoration:none/">尾页</a> "); } else { result.Append(" 尾页 "); } result.Append("<mce:script type=/"text/javascript/"><!-- "); result.Append("function get1(){"); result.Append("var va=document.getElementById(/"name1/").value;"); result.Append(" if(va <=" + page_total + " && va >=1){"); result.Append("location.href=/"" + yemian + "pageIndex=/"+va;}"); result.Append("} // --></mce:script>"); result.Append(" 转到 <input type=/"text/" style="/" mce_style="/""width:30px; height:12px;/" id=/"name1/"/> 页 "); result.Append("<a οnclick=/"get1();/" href="/" mce_href="/""#/" style="/" mce_style="/""text-decoration: none/">GO</a>"); result.Append("</div>"); } else { dp.Fill(ds); } dt = ds.Tables[0]; System.Type type = dl.GetType(); string ty = type.Name; if (ty.Equals("GridView")) { ((GridView)dl).DataSource = dt; ((GridView)dl).DataBind(); } else if (ty.Equals("DataList")) { ((DataList)dl).DataSource = dt; ((DataList)dl).DataBind(); } else if (ty.Equals("DropDownList")) { ((DropDownList)dl).DataSource = dt; ((DropDownList)dl).DataBind(); } else if (ty.Equals("Repeater")) { ((Repeater)dl).DataSource = dt; ((Repeater)dl).DataBind(); } } catch (Exception) { throw; } finally { con.Close(); } return result.ToString(); } #region 传SQL获得DataTable public DataTable getDataTableBySql(string sql) { DataTable dt = new DataTable(); SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); dp.Fill(ds); dt = ds.Tables[0]; } catch (Exception) { throw; } finally { con.Close(); } return dt; } #endregion #region 解密 /// <summary> /// 解密 /// </summary> /// <param name="pToEncrypt"></param> /// <param name="sKey">8位英文</param> /// <returns></returns> public static string Decrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //Put the input string into the byte array byte[] inputByteArray = new byte[pToEncrypt.Length / 2]; for (int x = 0; x < pToEncrypt.Length / 2; x++) { int i = (Convert.ToInt32(pToEncrypt.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } //建立加密对象的密钥和偏移量,此值重要,不能修改 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); //Flush the data through the crypto stream into the memory stream cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); //Get the decrypted data back from the memory stream //建立StringBuild对象,CreateDecrypt使用的是流对象,必须把解密后的文本变成流对象 StringBuilder ret = new StringBuilder(); return System.Text.Encoding.Default.GetString(ms.ToArray()); } #endregion #region 加密 /// <summary> /// 加密 /// </summary> /// <param name="pToEncrypt"></param> /// <param name="sKey">8位英文</param> /// <returns></returns> public static string Encrypt(string pToEncrypt, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); //把字符串放到byte数组中 //原来使用的UTF8编码,我改成Unicode编码了,不行 byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt); //byte[] inputByteArray=Encoding.Unicode.GetBytes(pToEncrypt); //建立加密对象的密钥和偏移量 //原文使用ASCIIEncoding.ASCII方法的GetBytes方法 //使得输入密码必须输入英文文本 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); //Write the byte array into the crypto stream //(It will end up in the memory stream) cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); //Get the data back from the memory stream, and into a string StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { //Format as hex ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } #endregion #region 根据条件查询表 并绑定 /// <summary> /// 根据条件查询表 并绑定 /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">数据库过滤字段数组</param> /// <param name="parametersList">参数名数组</param> /// <param name="filetype">sqldbtype类型数组</param> /// <param name="values">参数值数组</param> /// <param name="isorder">正序还是倒序?正序为true</param> /// <param name="orderValue">排序字段</param> /// <param name="dl">绑定容器:DataList GridView Repeater</param> /// <param name="isPage">是否分页</param> /// <param name="pageSize">分页条数</param> /// <param name="pageIndex">页数</param> public static void getInfo(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values, bool isorder, string orderValue, object dl, bool isPage, int pageSize, int pageIndex) { DataTable dt = new DataTable(); if (filed.Length == parametersList.Length && filed.Length == filetype.Length) { string order = string.Empty; if (!"".Equals(orderValue)) { order += " order by " + orderValue; if (!isorder) { order += " desc"; } } string sql = "select * from " + tablename + " where "; SqlParameter[] par = new SqlParameter[values.Length]; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); sql += order; } else { sql += "1=1 "; sql += order; } SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); if (isPage) { int start = (pageIndex - 1) * pageSize; int end = pageSize; dp.Fill(ds, start, end, "新闻表"); } else { dp.Fill(ds); } dt = ds.Tables[0]; System.Type type = dl.GetType(); string ty = type.Name; if (ty.Equals("GridView")) { ((GridView)dl).DataSource = dt; ((GridView)dl).DataBind(); } else if (ty.Equals("DataList")) { ((DataList)dl).DataSource = dt; ((DataList)dl).DataBind(); } else if (ty.Equals("DropDownList")) { ((DropDownList)dl).DataSource = dt; ((DropDownList)dl).DataBind(); } else if (ty.Equals("Repeater")) { ((Repeater)dl).DataSource = dt; ((Repeater)dl).DataBind(); } } catch (Exception) { throw; } finally { con.Close(); } } } #endregion #region 返回查询结果 获得前N条数据 /// <summary> /// 返回查询结果 /// </summary> /// <param name="tablename">表名</param> /// <param name="num">前几条?</param> /// <param name="filed">数据库过滤字段数组</param> /// <param name="parametersList">参数名数组</param> /// <param name="filetype">sqldbtype类型数组</param> /// <param name="values">参数值数组</param> /// <param name="isorder">正序还是倒序?正序为true</param> /// <param name="orderValue">排序字段</param> public static DataTable getInfo(string tablename, int num, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values, bool isorder, string orderValue) { StringBuilder result = new StringBuilder(); DataTable dt = new DataTable(); if (filed.Length == parametersList.Length && filed.Length == filetype.Length) { string order = string.Empty; if (!"".Equals(orderValue)) { order += " order by " + orderValue; if (!isorder) { order += " desc"; } } string sql = "select top " + num + " * from " + tablename + " where "; SqlParameter[] par = new SqlParameter[values.Length]; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); sql += order; } else { sql += "1=1 "; sql += order; } SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); dp.Fill(ds); dt = ds.Tables[0]; } catch (Exception) { throw; } finally { con.Close(); } } return dt; } #endregion #region 返回总条数 /// <summary> /// 返回总条数 /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">数据库过滤字段数组</param> /// <param name="parametersList">参数名数组</param> /// <param name="filetype">sqldbtype类型数组</param> /// <param name="values">参数值数组</param> public static DataTable getcount(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values) { StringBuilder result = new StringBuilder(); DataTable dt = new DataTable(); if (filed.Length == parametersList.Length && filed.Length == filetype.Length) { string sql = "select count(*) from " + tablename + " where "; SqlParameter[] par = new SqlParameter[values.Length]; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); } else { sql += "1=1 "; } SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); dp.Fill(ds); dt = ds.Tables[0]; } catch (Exception) { throw; } finally { con.Close(); } } return dt; } #endregion #region 返回查询结果 并 分页 并 返回 分页控件字符串 带转到页面 /// <summary> /// 返回查询结果 并 分页 并 返回 分页控件字符串 带转到页面 /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">数据库过滤字段数组</param> /// <param name="parametersList">参数名数组</param> /// <param name="filetype">sqldbtype类型数组</param> /// <param name="values">参数值数组</param> /// <param name="isorder">正序还是倒序?正序为true</param> /// <param name="orderValue">排序字段</param> /// <param name="dl">绑定容器:DataList GridView Repeater</param> /// <param name="isPage">是否分页</param> /// <param name="pageSize">分页条数</param> /// <param name="pageIndex">页数</param> /// <param name="yemian">跳转的页面</param> /// <returns>分页结果</returns> public static string getInfoByPage1(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values, bool isorder, string orderValue, object dl, bool isPage, string column, int pageSize, int pageIndex, string yemian) { string str = ""; DataTable dt = new DataTable(); if (filed.Length == parametersList.Length && filed.Length == filetype.Length) { string order = string.Empty; if (!"".Equals(orderValue)) { order += " order by " + orderValue; if (!isorder) { order += " desc"; } } string sql = ""; SqlParameter[] par = new SqlParameter[values.Length]; SqlParameter[] par2 = new SqlParameter[values.Length]; if (isPage) { if (pageIndex > 1) { string neiqian = "select top " + (pageIndex - 1) * pageSize + " " + column + " from " + tablename + " where "; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { neiqian += filed[i] + "=@" + parametersList[i] + "_2 and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i] + "_2", filetype[i]); par[i].Value = values[i]; } neiqian = neiqian.Substring(0, neiqian.Length - 4); neiqian += order; } else { neiqian += "1=1 "; neiqian += order; } sql = "select top " + pageSize + " * from " + tablename + " where " + column + " not in(" + neiqian + ") and "; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par2[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par2[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); sql += order; } else { sql += "1=1 "; sql += order; } } else { sql = "select top " + pageSize + " * from " + tablename + " where "; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); sql += order; } else { sql += "1=1 "; sql += order; } } } else { sql = "select * from " + tablename + " where "; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " =@" + parametersList[i] + " and "; } for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } sql = sql.Substring(0, sql.Length - 4); sql += order; } else { sql += "1=1 "; sql += order; } } SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(sql, con); if (isPage && pageIndex > 1) { for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par2[i]); cmd.Parameters.Add(par[i]); } } else { for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } } dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); #region if (isPage) { if (yemian.IndexOf("?") == -1) { yemian += "?"; } else { yemian += "&"; } pageIndex -= 1; dp.Fill(ds); //获得总条数 DataTable countdt = getcount(tablename, filed, parametersList, filetype, values); int total = Convert.ToInt32(countdt.Rows[0][0]);//总条数 int page_total = (total % pageSize) == 0 ? (total / pageSize) : (total / pageSize + 1);//总页数 int end_page = page_total;//最后一页 str += "<mce:script type=/"text/javascript/"><!-- "; str += "function get1(){"; str += "var va=document.getElementById(/"name1/").value;"; str += "if(va <=" + page_total + " && va >=1){"; str += "location.href=/"" + yemian + "pageIndex=/"+(va);}"; str += "} // --></mce:script>"; str += "<mce:style><!-- a {text-decoration:none;} --></mce:style><style mce_bogus="1">a {text-decoration:none;}</style>"; if (page_total <= 0) { str += ""; } else if (page_total <= 9 && page_total > 0) { str += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex != 0) { str += "<a href="" + yemian + "pageIndex=" + (pageIndex) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex) + "">上一页</a></div>"; } else { str += "上一页</div>"; } str += "<div style='border:#ccc 1px solid; width:auto; height:22px; padding-top:1px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc'/">转到 <input type=/"text/" style="/" mce_style="/""width:30px; height:12px;/" id=/"name1/"/><a οnclick=/"get1();/" href="/" mce_href="/""#/" style="/" mce_style="/""text-decoration: none/">GO</a></div>"; for (int i = 0; i < page_total; i++) { if (pageIndex == i) { str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } else { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } str += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc'/">"; if (pageIndex >= page_total - 1) { str += "下一页</div>"; } else { str += "<a href="" + yemian + "pageIndex=" + (pageIndex + 2) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex + 2) + "">下一页</div>"; } str += "</td></tr></table>"; } else if (page_total > 9) { int count = 0; int endcount = 0; int c1 = 0; int c2 = 0; str += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex != 0) { str += "<a href="" + yemian + "pageIndex=" + (pageIndex) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex) + "">上一页</a></div>"; } else { str += "上一页</div>"; } //str += "<div style='border:#ccc 1px solid; width:auto; height:22px; padding-top:1px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">转到 <input type=/"text/" style="/" mce_style="/""width:30px; height:12px;/" id=/"name1/"/><a οnclick=/"get1();/" href="/" mce_href="/""#/" style="/" mce_style="/""text-decoration: none/">GO</a></div>"; for (int i = 0; i < page_total; i++) { if (pageIndex > 2 && pageIndex < page_total - 2) { if (c1 == 0 && i >= 2 && i < page_total - 2 && pageIndex > 4) { if (pageIndex > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c1++; } } else if (c2 == 0 && i >= page_total - 3 && pageIndex < page_total - 5) { if (pageIndex < page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c2++; } } else if (pageIndex == i) { if (pageIndex >= 2 && pageIndex <= page_total - 2) { if (i > 3) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i - 1) + "" mce_href="" + yemian + "pageIndex=" + (i - 1) + "">" + (i - 1) + "</a></div>"; } if (i > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i) + "" mce_href="" + yemian + "pageIndex=" + (i) + "">" + i + "</a></div>"; } str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; if (i < page_total - 3) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 2) + "" mce_href="" + yemian + "pageIndex=" + (i + 2) + "">" + (i + 2) + "</a></div>"; } if (i < page_total - 4) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 3) + "" mce_href="" + yemian + "pageIndex=" + (i + 3) + "">" + (i + 3) + "</a></div>"; } } } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } } else if (pageIndex <= 2) { if (c2 == 0 && i >= page_total - 3 && pageIndex < page_total - 4) { if (pageIndex < page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c2++; } } else if (pageIndex == i) { str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 2) + "" mce_href="" + yemian + "pageIndex=" + (i + 2) + "">" + (i + 2) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 3) + "" mce_href="" + yemian + "pageIndex=" + (i + 3) + "">" + (i + 3) + "</a></div>"; } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } } else if (pageIndex >= page_total - 2) { if (c1 == 0 && i >= 2 && i < page_total - 2) { if (pageIndex > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c1++; } } else if (pageIndex == i) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i - 1) + "" mce_href="" + yemian + "pageIndex=" + (i - 1) + "">" + (i - 1) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i) + "" mce_href="" + yemian + "pageIndex=" + (i) + "">" + (i) + "</a></div>"; str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } } } str += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex >= page_total - 1) { str += "下一页</div>"; } else { str += "<a href="" + yemian + "pageIndex=" + (pageIndex + 2) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex + 2) + "">下一页</div>"; } str += "</td></tr></table>"; } if (page_total < 2) { str = ""; } } else { dp.Fill(ds); } #endregion dt = ds.Tables[0]; System.Type type = dl.GetType(); string ty = type.Name; if (ty.Equals("GridView")) { ((GridView)dl).DataSource = dt; ((GridView)dl).DataBind(); } else if (ty.Equals("DataList")) { ((DataList)dl).DataSource = dt; ((DataList)dl).DataBind(); } else if (ty.Equals("DropDownList")) { ((DropDownList)dl).DataSource = dt; ((DropDownList)dl).DataBind(); } else if (ty.Equals("Repeater")) { ((Repeater)dl).DataSource = dt; ((Repeater)dl).DataBind(); } } catch (Exception) { throw; } finally { con.Close(); } } return str; } #endregion #region 根据条件插入 /// <summary> /// 根据条件插入 /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">插入字段</param> /// <param name="parametersList">插入参数名</param> /// <param name="filetype">参数类型</param> /// <param name="values">参数值</param> /// <returns>影响条数</returns> public static int insert(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values) { int result = 0; string sql = "insert into " + tablename; SqlParameter[] par = new SqlParameter[values.Length]; if (filed.Length > 0) { sql += "("; for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " , "; } sql = sql.Substring(0, sql.Length - 2); sql += ")"; sql += " values("; for (int i = 0; i < parametersList.Length; i++) { sql += "@" + parametersList[i] + " , "; } sql = sql.Substring(0, sql.Length - 2); sql += ")"; for (int i = 0; i < values.Length; i++) { if (values[i].ToLower().Contains("script") || values[i].Contains("iframe") || values[i].Contains("frame")) { HttpContext.Current.Response.Write("<mce:script type="text/javascript"><!-- alert('检测到有敏感字符,请重新输入!'); // --></mce:script>"); return 0; } par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } } SqlConnection con = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); con.Open(); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } result = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { con.Close(); } return result; } #endregion #region 根据条件插入返回ID /// <summary> /// 根据条件插入返回ID /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">插入字段</param> /// <param name="parametersList">插入参数名</param> /// <param name="filetype">参数类型</param> /// <param name="values">参数值</param> /// <returns>返回ID</returns> public static int insertreturnid(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values) { int result = 0; string sql = "insert into " + tablename; SqlParameter[] par = new SqlParameter[values.Length]; if (filed.Length > 0) { sql += "("; for (int i = 0; i < filed.Length; i++) { sql += filed[i] + " , "; } sql = sql.Substring(0, sql.Length - 2); sql += ")"; sql += " values("; for (int i = 0; i < parametersList.Length; i++) { sql += "@" + parametersList[i] + " , "; } sql = sql.Substring(0, sql.Length - 2); sql += ") select @@identity as num"; for (int i = 0; i < values.Length; i++) { if (values[i].ToLower().Contains("script") || values[i].Contains("iframe") || values[i].Contains("frame")) { HttpContext.Current.Response.Write("<mce:script type="text/javascript"><!-- alert('检测到有敏感字符,请重新输入!'); // --></mce:script>"); return 0; } par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } } SqlConnection con = null; SqlCommand cmd = null; SqlDataReader sd = null; try { con = new SqlConnection(_connString); con.Open(); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } sd = cmd.ExecuteReader(); if (sd.Read()) { result = int.Parse(sd[0].ToString()); } } catch (Exception ex) { throw ex; } finally { con.Close(); } return result; } #endregion #region 根据条件更新 /// <summary> /// 根据条件更新 /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">要更新的字段名</param> /// <param name="parametersList">要更新的字段参数</param> /// <param name="filetype">要更新的字段参数类型</param> /// <param name="values">要更新的字段参数值</param> /// <param name="wherefiled">条件字段</param> /// <param name="whereparameterList">条件参数</param> /// <param name="wherefiletype">条件参数类型</param> /// <param name="wherevalues">条件参数值</param> /// <returns>影响条数</returns> public static int update(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values, string[] wherefiled, string[] whereparameterList, SqlDbType[] wherefiletype, string[] wherevalues) { int result = 0; string sql = "update " + tablename + " set "; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + "=@" + parametersList[i] + " , "; } sql = sql.Substring(0, sql.Length - 2); } if (wherefiled.Length > 0) { sql += " where "; for (int i = 0; i < wherefiled.Length; i++) { sql += wherefiled[i] + "=@" + whereparameterList[i] + " and "; } sql = sql.Substring(0, sql.Length - 4); } SqlParameter[] par = new SqlParameter[values.Length + wherevalues.Length]; SqlParameter[] par1 = new SqlParameter[values.Length]; for (int i = 0; i < values.Length; i++) { if (values[i].ToLower().Contains("script") || values[i].Contains("iframe") || values[i].Contains("frame")) { HttpContext.Current.Response.Write("<mce:script type="text/javascript"><!-- alert('检测到有敏感字符,请重新输入!'); // --></mce:script>"); return 0; } par1[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par1[i].Value = values[i]; par[i] = par1[i]; } SqlParameter[] par2 = new SqlParameter[wherevalues.Length]; for (int i = 0; i < wherevalues.Length; i++) { par2[i] = new SqlParameter("@" + whereparameterList[i], wherefiletype[i]); par2[i].Value = wherevalues[i]; par[i + values.Length] = par2[i]; } SqlConnection con = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); con.Open(); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } result = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { con.Close(); } return result; } #endregion #region 根据条件删除数据 /// <summary> /// 根据条件删除数据 /// </summary> /// <param name="tablename">表名</param> /// <param name="filed">条件字段</param> /// <param name="parametersList">条件参数</param> /// <param name="filetype">参数类型</param> /// <param name="values">参数值</param> /// <returns>影响条数</returns> public static int delete(string tablename, string[] filed, string[] parametersList, SqlDbType[] filetype, string[] values) { int result = 0; string sql = "delete " + tablename + " where "; if (filed.Length > 0) { for (int i = 0; i < filed.Length; i++) { sql += filed[i] + "=@" + parametersList[i] + " and "; } sql = sql.Substring(0, sql.Length - 4); } SqlParameter[] par = new SqlParameter[values.Length]; SqlParameter[] par1 = new SqlParameter[values.Length]; for (int i = 0; i < values.Length; i++) { par[i] = new SqlParameter("@" + parametersList[i], filetype[i]); par[i].Value = values[i]; } SqlConnection con = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); con.Open(); cmd = new SqlCommand(sql, con); for (int i = 0; i < par.Length; i++) { cmd.Parameters.Add(par[i]); } result = cmd.ExecuteNonQuery(); } catch (Exception ex) { throw ex; } finally { con.Close(); } return result; } #endregion #region 替换字符串 替换掉所有标签 /// <summary> /// 替换字符串 替换掉所有标签 /// </summary> /// <returns></returns> public static string ReplaceString(string str) { while (str.IndexOf("<") > -1) { str = str.Remove(str.IndexOf("<"), str.IndexOf(">", str.IndexOf("<")) - str.IndexOf("<") + 1); } str = str.Replace("<BR>", ""); str = str.Replace("<BR/>", ""); str = str.Replace("<P>", ""); str = str.Replace("</P>", ""); str = str.Replace("<div>", ""); str = str.Replace("</div>", ""); str = str.Replace(" ", ""); str = str.Replace(" ", ""); return str; } #endregion #region 长内容分页 哈希表需要引用命名空间System.Collections /// <summary> /// 长内容分页 哈希表需要引用命名空间System.Collections /// </summary> /// <param name="n_content">新闻内容</param> /// <param name="page">是新闻当前页数</param> /// <param name="size">每页显示字符长度</param> /// <param name="linkurl">页码链接地址</param> /// <returns></returns> public static System.Collections.Hashtable SeparatePages(string n_content, string page, int size, string linkurl) { //在此处放置初始化页的用户代码 System.Collections.Hashtable returnHash = new System.Collections.Hashtable(); int start, stops, t, stat, pp, pagecount, pagesize; string pa, articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得当前的页数 pa = page; if (pa == "" || pa == null) { pa = "1"; } pp = Convert.ToInt32(pa); //获得内容 articletxt = n_content; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = articletxt.Length / pagesize; //获得大致的总页数 for (int j = 0; j <= t; j++) { //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) { stat = articletxt.ToLower().IndexOf("</p>", start + pagesize); //查找</P>分页点的位置 } } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } if (pp == j + 1) //如果是当前,那么输出当前页的内容 { articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 returnHash["content"] = articletext; } start = stat; //将终点位置作为下一页的起始位置 } } } else { returnHash["content"] = n_content; } //分页部分(这里就简单多了) //定义分页代码变量 if (pagecount > 1) //当页数大于1的时候我们显示页数 { html += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (pp - 1 > 0) //显示上一页,方便浏览 { html = html + "<a href="/" mce_href="/""" + linkurl + "&page=" + (pp - 1) + "/">上一页</a></div>"; } else { if (pp == 1) { html = html + "<font color=#cccccc>上一页</font></div>"; } else { html = html + "<a href="/" mce_href="/""" + linkurl + "&page=/"" + (1) + "/">上一页</a></div>"; } } for (int i = 1; i <= pagecount; i++) { if (i == pp) //如果是当前页,加粗显示 { html = html + " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { html = html + " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + linkurl + "&page=" + i + "/">" + i + "</a></div>"; } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (pp + 1 > pagecount) //显示下一页,方便浏览 { if (pp == pagecount) { html = html + "<font color=#cccccc>下一页</font></div> "; } else { html = html + "<a href="/" mce_href="/""" + linkurl + "&page=" + (pagecount) + "/">下一页</a></div>"; } } else { html = html + "<a href="/" mce_href="/""" + linkurl + "&page=" + (pp + 1) + "/">下一页</a></div>"; } html += "</td></tr></table>"; } returnHash["pagetxt"] = html; return returnHash; } #endregion #region 截取字符串并去掉标签 /// <summary> /// 截取字符串 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="num">截取个数</param> public static string returnstr(string str, int num) { string temp = ReplaceString(str); string returnstring = ""; if (temp.Length > num) { if (temp[num].ToString() == ">") { num += 1; } returnstring = temp.Substring(0, num) + "..."; } else { returnstring = temp; } return returnstring; } #endregion #region 生成静态分页 哈希表需要引用命名空间System.Collections /// <summary> /// 生成静态分页 哈希表需要引用命名空间System.Collections /// </summary> /// <param name="n_content">新闻内容</param> /// <param name="size">每页显示字符长度</param> /// <returns></returns> public static void CreatHtmlAndSeparatePages(string titlee, string source, string timee, string n_content, int size, string year, string month, string htmlfilename, string newid, string tablename, string pingluntablename, string pagename) { Encoding code = Encoding.GetEncoding("gb2312"); string path = HttpContext.Current.Request.MapPath("../../html") + "//" + year; string temp = HttpContext.Current.Request.MapPath("../temphtml.html"); StreamReader sr = null; StreamWriter sw = null; string temphtmlurl = htmlfilename; if (Directory.Exists(path)) { if (Directory.Exists(path + "//" + month)) { int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = Convert.ToInt32(Math.Ceiling((double)articletxt.Length / pagesize)); //获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("</p>", start + pagesize); //查找</P>分页点的位置 } else if (start + pagesize >= articletxt.Length && j == (t - 1)) { PreventionHtmlAndSeparatePages(titlee, source, timee, n_content, 1000, year, month, htmlfilename, newid, tablename, pingluntablename, pagename, j); break; } if (stat <= 0)//如果找不到 { stops = pagesize; } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace("$content$", articletext).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace("$pagetxt$", html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(path + "//" + month + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace("$content$", n_content).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$pagetxt$", html).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); //写入 try { sw = new StreamWriter(path + "//" + month + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } else { Directory.CreateDirectory(path + "//" + month); int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = Convert.ToInt32(Math.Ceiling((double)articletxt.Length / pagesize)); //获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 } else if (start + pagesize >= articletxt.Length && j == (t - 1)) { PreventionHtmlAndSeparatePages(titlee, source, timee, n_content, 1000, year, month, htmlfilename, newid, tablename, pingluntablename, pagename, j); break; } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace("$content$", articletext).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace("$pagetxt$", html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(path + "//" + month + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace("$content$", n_content).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$pagetxt$", html).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); //写入 try { sw = new StreamWriter(path + "//" + month + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { Directory.CreateDirectory(path); Directory.CreateDirectory(path + "//" + month); int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = Convert.ToInt32(Math.Ceiling((double)articletxt.Length / pagesize));//获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 } else if (start + pagesize >= articletxt.Length && j == (t - 1)) { PreventionHtmlAndSeparatePages(titlee, source, timee, n_content, 1000, year, month, htmlfilename, newid, tablename, pingluntablename, pagename, j); break; } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace("$content$", articletext).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace("$pagetxt$", html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(path + "//" + month + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace("$content$", n_content).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$pagetxt$", html).Replace("$newid", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); //写入 try { sw = new StreamWriter(path + "//" + month + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } #endregion #region 修改并生成静态分页 哈希表需要引用命名空间System.Collections /// <summary> /// 修改并生成静态分页 哈希表需要引用命名空间System.Collections /// </summary> /// <param name="n_content">新闻内容</param> /// <param name="size">每页显示字符长度</param> /// <returns></returns> public static void UpdateHtmlAndSeparatePages(string titlee, string source, string timee, string n_content, int size, string year, string month, string htmlfilename, string newid, string tablename, string pingluntablename, string pagename) { Encoding code = Encoding.GetEncoding("gb2312"); string path = HttpContext.Current.Request.MapPath("../../html") + "//" + year; string temp = HttpContext.Current.Request.MapPath("../temphtml.html"); StreamReader sr = null; StreamWriter sw = null; string temphtmlurl = htmlfilename; int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = Convert.ToInt32(Math.Ceiling((double)articletxt.Length / pagesize)); //获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("</p>", start + pagesize); //查找</P>分页点的位置 } else if (start + pagesize >= articletxt.Length && j == (t - 1)) { PreventionHtmlAndSeparatePages(titlee, source, timee, n_content, 1000, year, month, htmlfilename, newid, tablename, pingluntablename, pagename, j); break; } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace("$content$", articletext).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace("$pagetxt$", html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(path + "//" + month + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace("$content$", n_content).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$pagetxt$", html).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); //写入 try { sw = new StreamWriter(path + "//" + month + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } #endregion #region 为防重复 重新生成静态并分页 哈希表需要引用命名空间System.Collections /// <summary> /// 为防重复 重新生成静态并分页 哈希表需要引用命名空间System.Collections /// </summary> /// <param name="n_content">新闻内容</param> /// <param name="size">每页显示字符长度</param> /// <returns></returns> public static void PreventionHtmlAndSeparatePages(string titlee, string source, string timee, string n_content, int size, string year, string month, string htmlfilename, string newid, string tablename, string pingluntablename, string pagename, int pagenum) { Encoding code = Encoding.GetEncoding("gb2312"); string path = HttpContext.Current.Request.MapPath("../../html") + "//" + year; string temp = HttpContext.Current.Request.MapPath("../temphtml.html"); StreamReader sr = null; StreamWriter sw = null; string temphtmlurl = htmlfilename; int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = pagenum; //获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("</p>", start + pagesize); //查找</P>分页点的位置 } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace("$content$", articletext).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace("$pagetxt$", html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(path + "//" + month + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace("$content$", n_content).Replace("$titlee$", titlee).Replace("$source$", source).Replace("$timee$", timee).Replace("$pagetxt$", html).Replace("$newid$", newid).Replace("$tablename$", tablename).Replace("$pltn$", pingluntablename).Replace("$pagename$", pagename); //写入 try { sw = new StreamWriter(path + "//" + month + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } #endregion #region 生成缩略图 ///<summary> /// 生成缩略图 /// </summary> /// <param name="originalImagePath">源图路径(物理路径)</param> /// <param name="thumbnailPath">缩略图路径(物理路径,包含文件名称)</param> /// <param name="width">缩略图宽度</param> /// <param name="height">缩略图高度</param> /// <param name="mode">生成缩略图的方式(HW:指定高宽缩放,W:指定宽,高按比例,H:指定高,宽按比例,Cut:指定高宽裁减)</param> public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode) { System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath); int towidth = width; int toheight = height; int x = 0; int y = 0; int ow = originalImage.Width; int oh = originalImage.Height; switch (mode) { case "HW"://指定高宽缩放(可能变形) break; case "W"://指定宽,高按比例 toheight = originalImage.Height * width / originalImage.Width; break; case "H"://指定高,宽按比例 towidth = originalImage.Width * height / originalImage.Height; break; case "Cut"://指定高宽裁减(不变形) if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight) { oh = originalImage.Height; ow = originalImage.Height * towidth / toheight; y = 0; x = (originalImage.Width - ow) / 2; } else { ow = originalImage.Width; oh = originalImage.Width * height / towidth; x = 0; y = (originalImage.Height - oh) / 2; } break; default: break; } //新建一个bmp图片 System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight); //新建一个画板 Graphics g = System.Drawing.Graphics.FromImage(bitmap); //设置高质量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //清空画布并以透明背景色填充 g.Clear(Color.Transparent); //在指定位置并且按指定大小绘制原图片的指定部分 g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight), new Rectangle(x, y, ow, oh), GraphicsUnit.Pixel); try { //以jpg格式保存缩略图 bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (System.Exception e) { throw e; } finally { originalImage.Dispose(); bitmap.Dispose(); g.Dispose(); } } #endregion #region 传入DataTable并分页 public string GetDtByPage(DataTable dt, int pageSize, int pageIndex, string yemian, object dl) { if (yemian.IndexOf("?") == -1) { yemian += "?"; } else { yemian += "&"; } DataTable newdt = new DataTable(); //创建编号列 DataColumn dc = new DataColumn(); dc.DataType = System.Type.GetType("System.Int32"); dc.ColumnName = "No"; newdt.Columns.Add(dc); //创建标题列 DataColumn dc2 = new DataColumn(); dc2.DataType = System.Type.GetType("System.String"); dc2.ColumnName = "Titlee"; newdt.Columns.Add(dc2); //创建分类列 DataColumn dc3 = new DataColumn(); dc3.DataType = System.Type.GetType("System.String"); dc3.ColumnName = "TypeName"; newdt.Columns.Add(dc3); //创建url列 DataColumn dc4 = new DataColumn(); dc4.DataType = System.Type.GetType("System.String"); dc4.ColumnName = "Url"; newdt.Columns.Add(dc4); //创建表名列 DataColumn dc5 = new DataColumn(); dc5.DataType = System.Type.GetType("System.String"); dc5.ColumnName = "TableName"; newdt.Columns.Add(dc5); //创建ID列 DataColumn dc6 = new DataColumn(); dc6.DataType = System.Type.GetType("System.String"); dc6.ColumnName = "Id"; newdt.Columns.Add(dc6); pageIndex -= 1; string str = ""; int total = dt.Rows.Count;//总条数 int page_total = (total % pageSize) == 0 ? (total / pageSize) : (total / pageSize + 1);//总页数 int end_page = page_total;//最后一页 int num1 = pageIndex * pageSize; int num2 = num1 + 10; DataRow[] drs = dt.Select("No > " + num1 + " and No <= " + num2 + ""); foreach (DataRow dr in drs) { newdt.ImportRow(dr); } str += "<mce:script type=/"text/javascript/"><!-- "; str += "function get1(){"; str += "var va=document.getElementById(/"name1/").value;"; str += "if(va <=" + page_total + " && va >=1){"; str += "location.href=/"" + yemian + "pageIndex=/"+(va);}"; str += "} // --></mce:script>"; str += "<mce:style><!-- a {text-decoration:none;} --></mce:style><style mce_bogus="1">a {text-decoration:none;}</style>"; if (page_total <= 0) { str += ""; } else if (page_total <= 9 && page_total > 0) { str += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex != 0) { str += "<a href="" + yemian + "pageIndex=" + (pageIndex) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex) + "">上一页</a></div>"; } else { str += "上一页</div>"; } for (int i = 0; i < page_total; i++) { if (pageIndex == i) { str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } else { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } str += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc'/">"; if (pageIndex >= page_total - 1) { str += "下一页</div>"; } else { str += "<a href="" + yemian + "pageIndex=" + (pageIndex + 2) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex + 2) + "">下一页</div>"; } str += "</td></tr></table>"; } else if (page_total > 9) { int count = 0; int endcount = 0; int c1 = 0; int c2 = 0; str += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex != 0) { str += "<a href="" + yemian + "pageIndex=" + (pageIndex) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex) + "">上一页</a></div>"; } else { str += "上一页</div>"; } for (int i = 0; i < page_total; i++) { if (pageIndex > 2 && pageIndex < page_total - 2) { if (c1 == 0 && i >= 2 && i < page_total - 2 && pageIndex > 4) { if (pageIndex > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c1++; } } else if (c2 == 0 && i >= page_total - 3 && pageIndex < page_total - 5) { if (pageIndex < page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c2++; } } else if (pageIndex == i) { if (pageIndex >= 2 && pageIndex <= page_total - 2) { if (i > 3) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i - 1) + "" mce_href="" + yemian + "pageIndex=" + (i - 1) + "">" + (i - 1) + "</a></div>"; } if (i > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i) + "" mce_href="" + yemian + "pageIndex=" + (i) + "">" + i + "</a></div>"; } str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; if (i < page_total - 3) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 2) + "" mce_href="" + yemian + "pageIndex=" + (i + 2) + "">" + (i + 2) + "</a></div>"; } if (i < page_total - 4) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 3) + "" mce_href="" + yemian + "pageIndex=" + (i + 3) + "">" + (i + 3) + "</a></div>"; } } } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } } else if (pageIndex <= 2) { if (c2 == 0 && i >= page_total - 3 && pageIndex < page_total - 4) { if (pageIndex < page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c2++; } } else if (pageIndex == i) { str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 2) + "" mce_href="" + yemian + "pageIndex=" + (i + 2) + "">" + (i + 2) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 3) + "" mce_href="" + yemian + "pageIndex=" + (i + 3) + "">" + (i + 3) + "</a></div>"; } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } } else if (pageIndex >= page_total - 2) { if (c1 == 0 && i >= 2 && i < page_total - 2) { if (pageIndex > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:4px;float:left;margin-left:5px;'>...</div>"; c1++; } } else if (pageIndex == i) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i - 1) + "" mce_href="" + yemian + "pageIndex=" + (i - 1) + "">" + (i - 1) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i) + "" mce_href="" + yemian + "pageIndex=" + (i) + "">" + (i) + "</a></div>"; str += "<div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } } } str += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;vertical-align:middle' οnmοuseοver=/"javascript:this.style.borderColor='red';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex >= page_total - 1) { str += "下一页</div>"; } else { str += "<a href="" + yemian + "pageIndex=" + (pageIndex + 2) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex + 2) + "">下一页</div>"; } str += "</td></tr></table>"; } if (page_total < 2) { str = ""; } System.Type type = dl.GetType(); string ty = type.Name; if (ty.Equals("GridView")) { ((GridView)dl).DataSource = newdt; ((GridView)dl).DataBind(); } else if (ty.Equals("DataList")) { ((DataList)dl).DataSource = newdt; ((DataList)dl).DataBind(); } else if (ty.Equals("DropDownList")) { ((DropDownList)dl).DataSource = newdt; ((DropDownList)dl).DataBind(); } else if (ty.Equals("Repeater")) { ((Repeater)dl).DataSource = newdt; ((Repeater)dl).DataBind(); } return str; } #endregion #region 截取字符串(按全角长度,一个全角等于两个半角) /// <summary> /// 截取字符串(按全角长度,一个全角等于两个半角) /// </summary> /// <param name="str">字符串</param> /// <param name="length">截取长度(全角)</param> /// <param name="length1">此处填0</param> /// <returns></returns> public String InterceptString(String str, Int32 length, Int32 length1) { str = ClearBlank(str); //System.Text.RegularExpressions.Regex.Replace(str, ""); if (str.Length > length) { if (length1 == 0) { length1 = length; } if (str.Length >= length1) { String str_left = str.Substring(0, length1); String str_right = str.Remove(0, length1); int banjiao = 0, other = 0; char[] chars = str_left.Trim().ToCharArray(); foreach (char ch in chars) { if (ch >= 33 && ch <= 126) { banjiao++; } else// if(ch>=65281 && ch<=65374) { other++; } } if ((other + (float)banjiao / 2) > length || (other + (float)banjiao / 2) - length == 0.5) { str_left = str_left.Remove(str_left.Length - 1, 1); return str_left; } else if ((other + (float)banjiao / 2) - length != 0) { if (length1 + 1 <= str.Length) { str_left = InterceptString(str, length, length1 + 1); } } return str_left; } else { return str; } } else { return str; } } #endregion #region 去掉字符串中所有空格 /// <summary> /// 去掉字符串中所有空格 /// </summary> /// <param name="str"></param> /// <returns></returns> public String ClearBlank(String str) { CharEnumerator myenum = str.GetEnumerator(); str = String.Empty; while (myenum.MoveNext()) { byte[] array = new byte[1]; array = System.Text.Encoding.ASCII.GetBytes(myenum.Current.ToString()); int asciiCode = (short)(array[0]); if (asciiCode != 32) { str += myenum.Current.ToString(); } } return str; } #endregion #region 通用生成静态并分页(自动) /// <summary> /// 生成静态页面(自动) /// </summary> /// <param name="creathtmlPath">要生成的静态页面路径(绝对路径)</param> /// <param name="temphtmlpath">模板页地址(绝对路径)</param> /// <param name="ispage">是否分页</param> /// <param name="size">分页大小</param> /// <param name="htmlfilename">页面名称(先生成,后传入,不带后缀)</param> /// <param name="n_content">要分页的内容</param> /// <param name="ReplaceContent">要替换的内容标签</param> /// <param name="PageTags">分页标签</param> /// <param name="oldReplace">需要替换的数组</param> /// <param name="nowReplace">用于替换的数组</param> public static bool CommondCreatHtml(string creathtmlPath, string temphtmlpath, bool ispage, int size, string htmlfilename, string n_content, string ReplaceContent, string PageTags, string[] oldReplace, string[] nowReplace) { Encoding code = Encoding.GetEncoding("gb2312"); string path = creathtmlPath; string temp = temphtmlpath; StreamReader sr = null; StreamWriter sw = null; string temphtmlurl = htmlfilename; int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { return false; HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize) // 如果大于字符串数,则我们可以分页显示 { t = Convert.ToInt32(Math.Ceiling((double)articletxt.Length / pagesize)); //获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("</p>", start + pagesize); //查找</P>分页点的位置 } else if (start + pagesize >= articletxt.Length && j == (t - 1)) { PreventionHtml(creathtmlPath, temphtmlpath, ispage, size, htmlfilename, n_content, ReplaceContent, PageTags, oldReplace, nowReplace, j); break; } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace(ReplaceContent, articletext); if (oldReplace.Length == nowReplace.Length) { for (int tmpn = 0; tmpn < oldReplace.Length; tmpn++) { str = str.Replace(oldReplace[tmpn], nowReplace[tmpn]); } } else { } start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace(PageTags, html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(creathtmlPath + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { return false; HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace(ReplaceContent, n_content); if (oldReplace.Length == nowReplace.Length) { for (int tmpn = 0; tmpn < oldReplace.Length; tmpn++) { str = str.Replace(oldReplace[tmpn], nowReplace[tmpn]); } } //写入 try { sw = new StreamWriter(creathtmlPath + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { return false; HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } return true; } #endregion #region 为防重复 重新生成静态并分页 /// <summary> /// 为防重复 重新生成静态并分页 /// </summary> public static bool PreventionHtml(string creathtmlPath, string temphtmlpath, bool ispage, int size, string htmlfilename, string n_content, string ReplaceContent, string PageTags, string[] oldReplace, string[] nowReplace, int pagenum) { Encoding code = Encoding.GetEncoding("gb2312"); string path = creathtmlPath; string temp = temphtmlpath; StreamReader sr = null; StreamWriter sw = null; string temphtmlurl = htmlfilename; int start, stops, t, stat, pp, pagecount, pagesize; string articletxt, articletext, html; int pig = 0; //变量初始值 stat = 0; start = 0; //开始查询的字符串位置,初始为0 stops = 0; pagesize = size;//定义每页至少显示字符串数 pagecount = 0; html = ""; //获得内容 articletxt = n_content; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { return false; HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); } finally { sr.Close(); } string tempstr = str; //判断页面的内容长度是否大于定义的每页至少显示字符串数 if (articletxt.Length >= pagesize && ispage == true) // 如果大于字符串数,则我们可以分页显示 { t = pagenum; //获得大致的总页数 for (int j = 0; j < t; j++) { string htmlurl = temphtmlurl; html = ""; str = tempstr; //如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找 if (start + pagesize < articletxt.Length) { stat = articletxt.ToLower().IndexOf("<p>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("<br/>", start + pagesize); //查找</P>分页点的位置 if (stat == -1) stat = articletxt.ToLower().IndexOf("</p>", start + pagesize); //查找</P>分页点的位置 } if (stat <= 0)//如果找不到 { } else { stops = stat; //分页点的位置也就作为这一页的终点位置 if (start < articletxt.Length) { if ((articletxt.Length - start) < pagesize) { if (pig == 0) { pagecount = pagecount + 1; } pig = 1; } else { pagecount = pagecount + 1; } } if (start + pagesize >= articletxt.Length) //如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点 { stops = articletxt.Length; } articletext = articletxt.Substring(start, stops - start); //取内容的起始位置到终点位置这段字符串输出 articletext = articletext.Replace("<P> </P>", ""); str = str.Replace(ReplaceContent, articletext); if (oldReplace.Length == nowReplace.Length) { for (int tmpn = 0; tmpn < oldReplace.Length; tmpn++) { str = str.Replace(oldReplace[tmpn], nowReplace[tmpn]); } } else { } start = stat; //将终点位置作为下一页的起始位置 //写入 try { html = "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;" align='center'><tr><td><div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' >"; if (j == 0) { html += "<font color=#cccccc>上一页</font></div> "; } else { if (j == 1) { html += "<a href="/" mce_href="/""" + htmlurl + ".html/">上一页</a></div>"; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j - 1) + ".html/">上一页</a></div>"; } } for (int i = 1; i <= t; i++) { if (i == j + 1) //如果是当前页,加粗显示 { html += " <div style='background:#E2E2E2;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><b>" + i + "</b></div> "; } else { if (i == 1) { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + ".html/">" + i + "</a></div>"; } else { html += " <div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px'><a href="/" mce_href="/""" + htmlurl + "_" + (i - 1) + ".html/">" + i + "</a></div>"; } } } html += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:4px; font-size:12px;' />"; if (j == (t - 1)) { html += "<font color=#cccccc>下一页</font></div> "; } else { html += "<a href="/" mce_href="/""" + htmlurl + "_" + (j + 1) + ".html/">下一页</a></div>"; } html += "</td></tr></table>"; str = str.Replace(PageTags, html); if (j > 0) { htmlurl = htmlurl + "_" + j; } sw = new StreamWriter(creathtmlPath + "//" + htmlurl + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { return false; HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } } } else { n_content = n_content.Replace("<P> </P>", ""); str = str.Replace(ReplaceContent, n_content); if (oldReplace.Length == nowReplace.Length) { for (int tmpn = 0; tmpn < oldReplace.Length; tmpn++) { str = str.Replace(oldReplace[tmpn], nowReplace[tmpn]); } } else { } //写入 try { sw = new StreamWriter(creathtmlPath + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { return false; HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { sw.Close(); } } return true; } #endregion #region 判断是否为数字 public static bool IsNumber(string str) { Regex regex = new Regex("^[0-9]*[1-9][0-9]*$"); return regex.IsMatch(str.Trim()) ? true : false; } #endregion #region 生成静态页面 /// <summary> /// 生成静态页面 /// </summary> /// <param name="creathtmlPath">要生成的静态页面路径(绝对路径)</param> /// <param name="temphtmlpath">模板页地址(绝对路径)</param> /// <param name="htmlfilename">页面名称(先生成,后传入,不带后缀)</param> /// <param name="oldReplace">需要替换的数组</param> /// <param name="nowReplace">用于替换的数组</param> public static bool CommondCreatHtml(string creathtmlPath, string temphtmlpath, string htmlfilename, string[] oldReplace, string[] nowReplace) { Encoding code = Encoding.GetEncoding("gb2312"); string path = creathtmlPath; string temp = temphtmlpath; StreamReader sr = null; StreamWriter sw = null; string str = ""; try { sr = new StreamReader(temp, code); str = sr.ReadToEnd(); } catch (Exception exp) { HttpContext.Current.Response.Write(exp.Message); HttpContext.Current.Response.End(); return false; } finally { if (sr != null) { sr.Close(); } } if (oldReplace.Length == nowReplace.Length) { for (int tmpn = 0; tmpn < oldReplace.Length; tmpn++) { str = str.Replace(oldReplace[tmpn], nowReplace[tmpn]); } } try { sw = new StreamWriter(creathtmlPath + "//" + htmlfilename + ".html", false, code); sw.Write(str); sw.Flush(); } catch (Exception ex) { return false; HttpContext.Current.Response.Write(ex.Message); HttpContext.Current.Response.End(); } finally { if (sw != null) { sw.Close(); } } return true; } #endregion #region 发送邮件 /// <summary> /// 发送邮件 /// </summary> ///<param name="to">收件人邮件地址</param> /// <param name="from">发件人邮件地址</param> /// <param name="subject">邮件主题</param> /// <param name="body">邮件内容</param> /// <param name="username">登录smtp主机时用到的用户名,注意是邮件地址'@'以前的部分</param> /// <param name="password">登录smtp主机时用到的用户密码</param> /// <param name="server">发送邮件用到的smtp主机</param> public void Send(string from, string[] to, string subject, string body, string server, string username, string pwd) { try { foreach (string var in to) { MailAddress mailform = new MailAddress(from); MailAddress mailto = new MailAddress(var); MailMessage mail = new MailMessage(mailform, mailto); mail.IsBodyHtml = false; mail.Body = body; mail.Subject = subject; mail.BodyEncoding = Encoding.GetEncoding("GB2312"); mail.SubjectEncoding = Encoding.GetEncoding("GB2312"); SmtpClient sclient = new SmtpClient(server); sclient.Credentials = new NetworkCredential(username, pwd); sclient.Send(mail); } } catch (Exception ex) { throw ex; } } #endregion #region 截取字符串 /// <summary> /// 截取字符串 /// </summary> ///<param name="str">要截取的字符串</param> ///<param name="leftNum">长度</param> public string leftTitle(string str, int leftNum) { double ln = 0; string inStr = Convert.ToString(str); string reStr = ""; for (int i = 0; i < inStr.Length; i++) { if (Convert.ToInt16(System.Text.UnicodeEncoding.Default.GetByteCount(inStr.Substring(i, 1))) == 1) { ln += 0.5; } else { ln++; } reStr += inStr.Substring(i, 1); if (ln >= leftNum) { reStr += "..."; break; } } return reStr; } #endregion #region 根据sql语句查询 public static DataTable getInfoBySQL(string mysql) { DataTable dt = new DataTable(); SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(mysql, con); dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); dp.Fill(dt); } catch (Exception ex) { throw; } finally { con.Close(); } return dt; } #endregion #region 根据SQL语句查询并分页 public static string getInfoBySQL(string mysql, object dl, bool isPage, int pageIndex, int pageSize, string yemian) { string str = ""; DataTable dt = new DataTable(); SqlConnection con = null; DataSet ds = null; SqlDataAdapter dp = null; SqlCommand cmd = null; try { con = new SqlConnection(_connString); cmd = new SqlCommand(mysql, con); dp = new SqlDataAdapter(); dp.SelectCommand = cmd; ds = new DataSet(); #region if (isPage) { if (yemian.IndexOf("?") == -1) { yemian += "?"; } else { yemian += "&"; } pageIndex -= 1; int start = pageIndex * pageSize; int end = pageSize; dp.Fill(ds, start, end, "新闻表"); DataSet ds1 = new DataSet(); dp.Fill(ds1); int total = ds1.Tables[0].Rows.Count;//总条数 int page_total = (total % pageSize) == 0 ? (total / pageSize) : (total / pageSize + 1);//总页数 int end_page = page_total;//最后一页 str += "<mce:script type=/"text/javascript/"><!-- "; str += "function get1(){"; str += "var va=document.getElementById(/"name1/").value;"; str += "if(va <=" + page_total + " && va >=1){"; str += "location.href=/"" + yemian + "pageIndex=/"+(va);}"; str += "} // --></mce:script>"; str += "<mce:style><!-- a {text-decoration:none;} --></mce:style><style mce_bogus="1">a {text-decoration:none;}</style>"; if (page_total <= 0) { str += ""; } else if (page_total <= 9 && page_total > 0) { str += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex != 0) { str += "<a href="" + yemian + "pageIndex=" + (pageIndex) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex) + "">上一页</a></div>"; } else { str += "上一页</div>"; } //str += "<div style='border:#ccc 1px solid; width:auto; height:22px; padding-top:1px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc'/">转到<input type=/"text/" style="/" mce_style="/""width:30px; height:12px;/" id=/"name1/"/><a οnclick=/"get1();/" href="/" mce_href="/""#/" style="/" mce_style="/""text-decoration: none/">GO</a></div>"; for (int i = 0; i < page_total; i++) { if (pageIndex == i) { str += "<div style='background:#2E6AB1;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "" style="color:#FFFFFF" mce_style="color:#FFFFFF">" + (i + 1) + "</a></div>"; } else { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } str += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc'/">"; if (pageIndex >= page_total - 1) { str += "下一页</div>"; } else { str += "<a href="" + yemian + "pageIndex=" + (pageIndex + 2) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex + 2) + "">下一页</div>"; } str += "</td></tr></table>"; } else if (page_total > 9) { int count = 0; int endcount = 0; int c1 = 0; int c2 = 0; str += "<table style="font-size:12px;font-family:Verdana;" mce_style="font-size:12px;font-family:Verdana;"><tr><td><div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex != 0) { str += "<a href="" + yemian + "pageIndex=" + (pageIndex) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex) + "">上一页</a></div>"; } else { str += "上一页</div>"; } //str += "<div style='border:#ccc 1px solid; width:auto; height:22px; padding-top:1px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">转到<input type=/"text/" style="/" mce_style="/""width:30px; height:12px;/" id=/"name1/"/><a οnclick=/"get1();/" href="/" mce_href="/""#/" style="/" mce_style="/""text-decoration: none/">GO</a></div>"; for (int i = 0; i < page_total; i++) { if (pageIndex > 2 && pageIndex < page_total - 2) { if (c1 == 0 && i >= 2 && i < page_total - 2 && pageIndex > 4) { if (pageIndex > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:5px;float:left;margin-left:5px;'>...</div>"; c1++; } } else if (c2 == 0 && i >= page_total - 3 && pageIndex < page_total - 5) { if (pageIndex < page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:5px;float:left;margin-left:5px;'>...</div>"; c2++; } } else if (pageIndex == i) { if (pageIndex >= 2 && pageIndex <= page_total - 2) { if (i > 3) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i - 1) + "" mce_href="" + yemian + "pageIndex=" + (i - 1) + "">" + (i - 1) + "</a></div>"; } if (i > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i) + "" mce_href="" + yemian + "pageIndex=" + (i) + "">" + i + "</a></div>"; } str += "<div style='background:#2E6AB1;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "" style="color:#FFFFFF" mce_style="color:#FFFFFF">" + (i + 1) + "</a></div>"; if (i < page_total - 3) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 2) + "" mce_href="" + yemian + "pageIndex=" + (i + 2) + "">" + (i + 2) + "</a></div>"; } if (i < page_total - 4) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 3) + "" mce_href="" + yemian + "pageIndex=" + (i + 3) + "">" + (i + 3) + "</a></div>"; } } } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } } else if (pageIndex <= 2) { if (c2 == 0 && i >= page_total - 3 && pageIndex < page_total - 4) { if (pageIndex < page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:5px;float:left;margin-left:5px;'>...</div>"; c2++; } } else if (pageIndex == i) { str += "<div style='background:#2E6AB1;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "" style="color:#FFFFFF" mce_style="color:#FFFFFF">" + (i + 1) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 2) + "" mce_href="" + yemian + "pageIndex=" + (i + 2) + "">" + (i + 2) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 3) + "" mce_href="" + yemian + "pageIndex=" + (i + 3) + "">" + (i + 3) + "</a></div>"; } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } } else if (pageIndex >= page_total - 2) { if (c1 == 0 && i >= 2 && i < page_total - 2) { if (pageIndex > 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px;padding-left:5px;padding-right:5px; padding-top:5px;float:left;margin-left:5px;'>...</div>"; c1++; } } else if (pageIndex == i) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i - 1) + "" mce_href="" + yemian + "pageIndex=" + (i - 1) + "">" + (i - 1) + "</a></div>"; str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i) + "" mce_href="" + yemian + "pageIndex=" + (i) + "">" + (i) + "</a></div>"; str += "<div style='background:#2E6AB1;border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "" style="color:#FFFFFF" mce_style="color:#FFFFFF" >" + (i + 1) + "</a></div>"; } else if (pageIndex > i) { if (count < 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; count++; } } else if (pageIndex < i) { if (i >= page_total - 2) { str += "<div style='border:#ccc 1px solid; width:auto; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/"><a href="" + yemian + "pageIndex=" + (i + 1) + "" mce_href="" + yemian + "pageIndex=" + (i + 1) + "">" + (i + 1) + "</a></div>"; } } } } str += "<div style='border:#ccc 1px solid; width:40px; height:18px; text-align:center; margin-left:5px; float:left;padding-left:5px;padding-right:5px; padding-top:5px; font-size:12px;' οnmοuseοver=/"javascript:this.style.borderColor='#ECF6FF';/" οnmοuseοut=/"javascript:this.style.borderColor='#ccc';/">"; if (pageIndex >= page_total - 1) { str += "下一页</div>"; } else { str += "<a href="" + yemian + "pageIndex=" + (pageIndex + 2) + "" mce_href="" + yemian + "pageIndex=" + (pageIndex + 2) + "">下一页</div>"; } str += "</td></tr></table>"; } } else { dp.Fill(ds); } dt = ds.Tables[0]; if (dl != null) { System.Type type = dl.GetType(); string ty = type.Name; if (ty.Equals("GridView")) { ((GridView)dl).DataSource = dt; ((GridView)dl).DataBind(); } else if (ty.Equals("DataList")) { ((DataList)dl).DataSource = dt; ((DataList)dl).DataBind(); } else if (ty.Equals("DropDownList")) { ((DropDownList)dl).DataSource = dt; ((DropDownList)dl).DataBind(); } else if (ty.Equals("Repeater")) { ((Repeater)dl).DataSource = dt; ((Repeater)dl).DataBind(); } } #endregion } catch (Exception ex) { throw; } finally { con.Close(); } return str; } #endregion #region 更新 删除 修改 public static int up_de_in(string sql) { int result = 0; SqlConnection con = null; SqlCommand cmd = null; SqlTransaction st = null; try { con = new SqlConnection(_connString); con.Open(); st = con.BeginTransaction(); cmd = new SqlCommand(sql, con); cmd.Transaction = st; result = cmd.ExecuteNonQuery(); st.Commit(); } catch (Exception ex) { st.Rollback(); throw ex; } finally { con.Close(); } return result; } #endregion #region 显示消息 public static void showMessage(string message) { System.Web.HttpContext.Current.Response.Write("<mce:script type="text/javascript"><!-- alert('" + message + "') // --></mce:script>"); } #endregion #region 返回上一页 public static void historyback() { System.Web.HttpContext.Current.Response.Write("<mce:script type="text/javascript"><!-- history.back(); // --></mce:script>"); } #endregion } public class MD5 { const int BITS_TO_A_BYTE = 8; const int BYTES_TO_A_WORD = 4; const int BITS_TO_A_WORD = 32; private static long[] m_lOnBits = new long[30 + 1]; private static long[] m_l2Power = new long[30 + 1]; private static long LShift(long lValue, long iShiftBits) { long LShift = 0; if (iShiftBits == 0) { LShift = lValue; return LShift; } else { if (iShiftBits == 31) { if (Convert.ToBoolean(lValue & 1)) { LShift = 0x80000000; } else { LShift = 0; } return LShift; } else { if (iShiftBits < 0 || iShiftBits > 31) { // Err.Raise 6; } } } if (Convert.ToBoolean((lValue & m_l2Power[31 - iShiftBits]))) { LShift = ((lValue & m_lOnBits[31 - (iShiftBits + 1)]) * m_l2Power[iShiftBits]) | 0x80000000; } else { LShift = ((lValue & m_lOnBits[31 - iShiftBits]) * m_l2Power[iShiftBits]); } return LShift; } private static long RShift(long lValue, long iShiftBits) { long RShift = 0; if (iShiftBits == 0) { RShift = lValue; return RShift; } else { if (iShiftBits == 31) { if (Convert.ToBoolean(lValue & 0x80000000)) { RShift = 1; } else { RShift = 0; } return RShift; } else { if (iShiftBits < 0 || iShiftBits > 31) { // Err.Raise 6; } } } RShift = (lValue & 0x7FFFFFFE) / m_l2Power[iShiftBits]; if (Convert.ToBoolean((lValue & 0x80000000))) { RShift = (RShift | (0x40000000 / m_l2Power[iShiftBits - 1])); } return RShift; } private static long RotateLeft(long lValue, long iShiftBits) { long RotateLeft = 0; RotateLeft = LShift(lValue, iShiftBits) | RShift(lValue, (32 - iShiftBits)); return RotateLeft; } private static long AddUnsigned(long lX, long lY) { long AddUnsigned = 0; long lX4 = 0; long lY4 = 0; long lX8 = 0; long lY8 = 0; long lResult = 0; lX8 = lX & 0x80000000; lY8 = lY & 0x80000000; lX4 = lX & 0x40000000; lY4 = lY & 0x40000000; lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF); if (Convert.ToBoolean(lX4 & lY4)) { lResult = lResult ^ 0x80000000 ^ lX8 ^ lY8; } else if (Convert.ToBoolean(lX4 | lY4)) { if (Convert.ToBoolean(lResult & 0x40000000)) { lResult = lResult ^ 0xC0000000 ^ lX8 ^ lY8; } else { lResult = lResult ^ 0x40000000 ^ lX8 ^ lY8; } } else { lResult = lResult ^ lX8 ^ lY8; } AddUnsigned = lResult; return AddUnsigned; } private static long md5_F(long x, long y, long z) { long md5_F = 0; md5_F = (x & y) | ((~x) & z); return md5_F; } private static long md5_G(long x, long y, long z) { long md5_G = 0; md5_G = (x & z) | (y & (~z)); return md5_G; } private static long md5_H(long x, long y, long z) { long md5_H = 0; md5_H = (x ^ y ^ z); return md5_H; } private static long md5_I(long x, long y, long z) { long md5_I = 0; md5_I = (y ^ (x | (~z))); return md5_I; } private static void md5_FF(ref long a, long b, long c, long d, long x, long s, long ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)); a = RotateLeft(a, s); a = AddUnsigned(a, b); } private static void md5_GG(ref long a, long b, long c, long d, long x, long s, long ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)); a = RotateLeft(a, s); a = AddUnsigned(a, b); } private static void md5_HH(ref long a, long b, long c, long d, long x, long s, long ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)); a = RotateLeft(a, s); a = AddUnsigned(a, b); } private static void md5_II(ref long a, long b, long c, long d, long x, long s, long ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)); a = RotateLeft(a, s); a = AddUnsigned(a, b); } private static long[] ConvertToWordArray(string sMessage) { long[] ConvertToWordArray = null; int lMessageLength = 0; int lNumberOfWords = 0; long[] lWordArray = null; int lBytePosition = 0; int lByteCount = 0; int lWordCount = 0; const int MODULUS_BITS = 512; const int CONGRUENT_BITS = 448; lMessageLength = sMessage.Length; lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) / BITS_TO_A_BYTE)) / (MODULUS_BITS / BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS / BITS_TO_A_WORD); lWordArray = new long[lNumberOfWords]; lBytePosition = 0; lByteCount = 0; while (lByteCount < lMessageLength) { lWordCount = lByteCount / BYTES_TO_A_WORD; lBytePosition = (lByteCount % BYTES_TO_A_WORD) * BITS_TO_A_BYTE; lWordArray[lWordCount] = lWordArray[lWordCount] | LShift(Convert.ToByte(sMessage.Substring(lByteCount, 1).ToCharArray()[0]), lBytePosition); lByteCount = lByteCount + 1; } lWordCount = lByteCount / BYTES_TO_A_WORD; lBytePosition = (lByteCount % BYTES_TO_A_WORD) * BITS_TO_A_BYTE; lWordArray[lWordCount] = lWordArray[lWordCount] | LShift(0x80, lBytePosition); lWordArray[lNumberOfWords - 2] = LShift(lMessageLength, 3); lWordArray[lNumberOfWords - 1] = RShift(lMessageLength, 29); ConvertToWordArray = lWordArray; return ConvertToWordArray; } private static string WordToHex(long lValue) { string WordToHex = ""; long lByte = 0; int lCount = 0; for (lCount = 0; lCount <= 3; lCount++) { lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) & m_lOnBits[BITS_TO_A_BYTE - 1]; WordToHex = WordToHex + (("0" + ToHex(lByte)).Substring(("0" + ToHex(lByte)).Length - 2)); } return WordToHex; } private static string ToHex(long dec) { string strhex = ""; while (dec > 0) { strhex = tohex(dec % 16) + strhex; dec = dec / 16; } return strhex; } private static string tohex(long hex) { string strhex = ""; switch (hex) { case 10: strhex = "a"; break; case 11: strhex = "b"; break; case 12: strhex = "c"; break; case 13: strhex = "d"; break; case 14: strhex = "e"; break; case 15: strhex = "f"; break; default: strhex = hex.ToString(); break; } return strhex; } public static string Encrypt(string sMessage, int stype) { string MD5 = ""; for (int i = 0; i <= 30; i++) { m_lOnBits[i] = Convert.ToInt64(Math.Pow(2, i + 1) - 1); m_l2Power[i] = Convert.ToInt64(Math.Pow(2, i)); } long[] x = null; int k = 0; long AA = 0; long BB = 0; long CC = 0; long DD = 0; long a = 0; long b = 0; long c = 0; long d = 0; const int S11 = 7; const int S12 = 12; const int S13 = 17; const int S14 = 22; const int S21 = 5; const int S22 = 9; const int S23 = 14; const int S24 = 20; const int S31 = 4; const int S32 = 11; const int S33 = 16; const int S34 = 23; const int S41 = 6; const int S42 = 10; const int S43 = 15; const int S44 = 21; x = ConvertToWordArray(sMessage); a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476; for (k = 0; k < x.Length; k += 16) { AA = a; BB = b; CC = c; DD = d; md5_FF(ref a, b, c, d, x[k + 0], S11, 0xD76AA478); md5_FF(ref d, a, b, c, x[k + 1], S12, 0xE8C7B756); md5_FF(ref c, d, a, b, x[k + 2], S13, 0x242070DB); md5_FF(ref b, c, d, a, x[k + 3], S14, 0xC1BDCEEE); md5_FF(ref a, b, c, d, x[k + 4], S11, 0xF57C0FAF); md5_FF(ref d, a, b, c, x[k + 5], S12, 0x4787C62A); md5_FF(ref c, d, a, b, x[k + 6], S13, 0xA8304613); md5_FF(ref b, c, d, a, x[k + 7], S14, 0xFD469501); md5_FF(ref a, b, c, d, x[k + 8], S11, 0x698098D8); md5_FF(ref d, a, b, c, x[k + 9], S12, 0x8B44F7AF); md5_FF(ref c, d, a, b, x[k + 10], S13, 0xFFFF5BB1); md5_FF(ref b, c, d, a, x[k + 11], S14, 0x895CD7BE); md5_FF(ref a, b, c, d, x[k + 12], S11, 0x6B901122); md5_FF(ref d, a, b, c, x[k + 13], S12, 0xFD987193); md5_FF(ref c, d, a, b, x[k + 14], S13, 0xA679438E); md5_FF(ref b, c, d, a, x[k + 15], S14, 0x49B40821); md5_GG(ref a, b, c, d, x[k + 1], S21, 0xF61E2562); md5_GG(ref d, a, b, c, x[k + 6], S22, 0xC040B340); md5_GG(ref c, d, a, b, x[k + 11], S23, 0x265E5A51); md5_GG(ref b, c, d, a, x[k + 0], S24, 0xE9B6C7AA); md5_GG(ref a, b, c, d, x[k + 5], S21, 0xD62F105D); md5_GG(ref d, a, b, c, x[k + 10], S22, 0x2441453); md5_GG(ref c, d, a, b, x[k + 15], S23, 0xD8A1E681); md5_GG(ref b, c, d, a, x[k + 4], S24, 0xE7D3FBC8); md5_GG(ref a, b, c, d, x[k + 9], S21, 0x21E1CDE6); md5_GG(ref d, a, b, c, x[k + 14], S22, 0xC33707D6); md5_GG(ref c, d, a, b, x[k + 3], S23, 0xF4D50D87); md5_GG(ref b, c, d, a, x[k + 8], S24, 0x455A14ED); md5_GG(ref a, b, c, d, x[k + 13], S21, 0xA9E3E905); md5_GG(ref d, a, b, c, x[k + 2], S22, 0xFCEFA3F8); md5_GG(ref c, d, a, b, x[k + 7], S23, 0x676F02D9); md5_GG(ref b, c, d, a, x[k + 12], S24, 0x8D2A4C8A); md5_HH(ref a, b, c, d, x[k + 5], S31, 0xFFFA3942); md5_HH(ref d, a, b, c, x[k + 8], S32, 0x8771F681); md5_HH(ref c, d, a, b, x[k + 11], S33, 0x6D9D6122); md5_HH(ref b, c, d, a, x[k + 14], S34, 0xFDE5380C); md5_HH(ref a, b, c, d, x[k + 1], S31, 0xA4BEEA44); md5_HH(ref d, a, b, c, x[k + 4], S32, 0x4BDECFA9); md5_HH(ref c, d, a, b, x[k + 7], S33, 0xF6BB4B60); md5_HH(ref b, c, d, a, x[k + 10], S34, 0xBEBFBC70); md5_HH(ref a, b, c, d, x[k + 13], S31, 0x289B7EC6); md5_HH(ref d, a, b, c, x[k + 0], S32, 0xEAA127FA); md5_HH(ref c, d, a, b, x[k + 3], S33, 0xD4EF3085); md5_HH(ref b, c, d, a, x[k + 6], S34, 0x4881D05); md5_HH(ref a, b, c, d, x[k + 9], S31, 0xD9D4D039); md5_HH(ref d, a, b, c, x[k + 12], S32, 0xE6DB99E5); md5_HH(ref c, d, a, b, x[k + 15], S33, 0x1FA27CF8); md5_HH(ref b, c, d, a, x[k + 2], S34, 0xC4AC5665); md5_II(ref a, b, c, d, x[k + 0], S41, 0xF4292244); md5_II(ref d, a, b, c, x[k + 7], S42, 0x432AFF97); md5_II(ref c, d, a, b, x[k + 14], S43, 0xAB9423A7); md5_II(ref b, c, d, a, x[k + 5], S44, 0xFC93A039); md5_II(ref a, b, c, d, x[k + 12], S41, 0x655B59C3); md5_II(ref d, a, b, c, x[k + 3], S42, 0x8F0CCC92); md5_II(ref c, d, a, b, x[k + 10], S43, 0xFFEFF47D); md5_II(ref b, c, d, a, x[k + 1], S44, 0x85845DD1); md5_II(ref a, b, c, d, x[k + 8], S41, 0x6FA87E4F); md5_II(ref d, a, b, c, x[k + 15], S42, 0xFE2CE6E0); md5_II(ref c, d, a, b, x[k + 6], S43, 0xA3014314); md5_II(ref b, c, d, a, x[k + 13], S44, 0x4E0811A1); md5_II(ref a, b, c, d, x[k + 4], S41, 0xF7537E82); md5_II(ref d, a, b, c, x[k + 11], S42, 0xBD3AF235); md5_II(ref c, d, a, b, x[k + 2], S43, 0x2AD7D2BB); md5_II(ref b, c, d, a, x[k + 9], S44, 0xEB86D391); a = AddUnsigned(a, AA); b = AddUnsigned(b, BB); c = AddUnsigned(c, CC); d = AddUnsigned(d, DD); } if (stype == 32) { MD5 = ((((WordToHex(a)) + (WordToHex(b))) + (WordToHex(c))) + (WordToHex(d))).ToLower(); } else { MD5 = ((WordToHex(b)) + (WordToHex(c))).ToLower(); } return MD5; } } }