当我点击上一页或下一页,首页,尾页的时候,传入的KeyWords的值就变成乱码了,怎么解决啊,
项目中在web.config中使用了<globalization uiCulture="zh-cn" culture="zh-cn" requestEncoding="gb2312" responseEncoding="gb2312"/>
且web.config不能更改,急求解决方法
后台类 /// <summary>
/// 分页查询关键词列表
/// </summary>
/// <param name="TableName">查询的表名</param>
/// <param name="TableFields">查询的列名</param>
/// <param name="TableWhere">查询的条件</param>
/// <param name="OrdFields">排序</param>
/// <param name="PageSize">每页显示的数据</param>
/// <param name="PageIndex">当前页数</param>
/// <param name="TotalPage">总页数</param>
/// <param name="TotalRecord">总条数</param>
/// <returns></returns>
public static string GetArticleKeyWordsList(string TableName, string TableFields, string TableWhere, string OrdFields, int PageSize, int PageIndex, ref int TotalPage, ref int TotalRecord)
{
StringBuilder sb = new StringBuilder();
DataTable dt = ArticleKeyWordsRules.getArticleKeyWordsListByPage(TableName, TableFields, TableWhere, OrdFields, PageSize, PageIndex, ref TotalPage, ref TotalRecord);
foreach (DataRow dr in dt.Rows)
{
sb.Append("<a href=\"ArticleList.aspx?KeyWords=").Append(dr["KeyWords"].ToString()).Append("¤tPage=1\" target=\"_blank\" >").Append(dr["KeyWords"].ToString()).Append("</a> (").Append(Convert.ToInt32(dr["ArticleCount"])).Append(")<br /><hr />");
}
return sb.ToString();
}
后台页面:using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 _60CheWebFunction;
public partial class ArticleList : System.Web.UI.Page
{
//文章列表
protected string ArticleLists = "";
//每页显示的数据条数,当前页,总页数,总记录数,显示的页数个数
protected int PageSize = 35, PageIndex = 1, TotalPage = 0, TotalRecord = 0, NumCount = 3;
protected void Page_Load(object sender, EventArgs e)
{
//当前页
PageIndex = Convert.ToInt32(Request["CurrentPage"]);
//查询的表
string TableName = "[AC_Article] as aa,[AC_Article_KeyWords_Relation] as aakr";
//查询的列名
string TableFields = "aa.ArticleId,aa.Title,aa.ShortTitle,aa.Author,aa.Source,aa.SourceURL,aa.SourceType,aa.Editor,aa.PublishDateTime,aa.CreateDateTime,aa.LastUpdateDateTime,aa.LastUpdateEditor,aa.Keywords";
//查询的条件
string TableWhere=" aakr.ArticleId=aa.ArticleId and aa.IsEnable=1 and IsPublish=1 and aakr.KeyWords='"+Request["KeyWords"]+"'";
//排序
string OrdFields=" PublishDateTime desc";
//文章列表(表名,列名,条件,排序,数量,当前页,总页数,总记录数)
ArticleLists = ArticleKeyWordsFunction.GetArticleListByPage(TableName, TableFields, TableWhere, OrdFields, PageSize, PageIndex, ref TotalPage, ref TotalRecord);
/*分页控件*/
//当前页
this.PagerControl1.currentPage = PageIndex < 0 ? 1 : PageIndex;
//每页显示的数量
this.PagerControl1.pageSize = PageSize;
//总页数
this.PagerControl1.pageCount = TotalPage;
//总数量
this.PagerControl1.recordCount = TotalRecord;
//显示的页数数字的个数
this.PagerControl1.NumCount = NumCount;
this.PagerControl1.ModelType = "{页信息} {首页} {上一页} {数字} {下一页} {尾页}";
}
}
项目中在web.config中使用了<globalization uiCulture="zh-cn" culture="zh-cn" requestEncoding="gb2312" responseEncoding="gb2312"/>
且web.config不能更改,急求解决方法
后台类 /// <summary>
/// 分页查询关键词列表
/// </summary>
/// <param name="TableName">查询的表名</param>
/// <param name="TableFields">查询的列名</param>
/// <param name="TableWhere">查询的条件</param>
/// <param name="OrdFields">排序</param>
/// <param name="PageSize">每页显示的数据</param>
/// <param name="PageIndex">当前页数</param>
/// <param name="TotalPage">总页数</param>
/// <param name="TotalRecord">总条数</param>
/// <returns></returns>
public static string GetArticleKeyWordsList(string TableName, string TableFields, string TableWhere, string OrdFields, int PageSize, int PageIndex, ref int TotalPage, ref int TotalRecord)
{
StringBuilder sb = new StringBuilder();
DataTable dt = ArticleKeyWordsRules.getArticleKeyWordsListByPage(TableName, TableFields, TableWhere, OrdFields, PageSize, PageIndex, ref TotalPage, ref TotalRecord);
foreach (DataRow dr in dt.Rows)
{
sb.Append("<a href=\"ArticleList.aspx?KeyWords=").Append(dr["KeyWords"].ToString()).Append("¤tPage=1\" target=\"_blank\" >").Append(dr["KeyWords"].ToString()).Append("</a> (").Append(Convert.ToInt32(dr["ArticleCount"])).Append(")<br /><hr />");
}
return sb.ToString();
}
后台页面:using System;
using System.Data;
using System.Configuration;
using System.Collections;
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 _60CheWebFunction;
public partial class ArticleList : System.Web.UI.Page
{
//文章列表
protected string ArticleLists = "";
//每页显示的数据条数,当前页,总页数,总记录数,显示的页数个数
protected int PageSize = 35, PageIndex = 1, TotalPage = 0, TotalRecord = 0, NumCount = 3;
protected void Page_Load(object sender, EventArgs e)
{
//当前页
PageIndex = Convert.ToInt32(Request["CurrentPage"]);
//查询的表
string TableName = "[AC_Article] as aa,[AC_Article_KeyWords_Relation] as aakr";
//查询的列名
string TableFields = "aa.ArticleId,aa.Title,aa.ShortTitle,aa.Author,aa.Source,aa.SourceURL,aa.SourceType,aa.Editor,aa.PublishDateTime,aa.CreateDateTime,aa.LastUpdateDateTime,aa.LastUpdateEditor,aa.Keywords";
//查询的条件
string TableWhere=" aakr.ArticleId=aa.ArticleId and aa.IsEnable=1 and IsPublish=1 and aakr.KeyWords='"+Request["KeyWords"]+"'";
//排序
string OrdFields=" PublishDateTime desc";
//文章列表(表名,列名,条件,排序,数量,当前页,总页数,总记录数)
ArticleLists = ArticleKeyWordsFunction.GetArticleListByPage(TableName, TableFields, TableWhere, OrdFields, PageSize, PageIndex, ref TotalPage, ref TotalRecord);
/*分页控件*/
//当前页
this.PagerControl1.currentPage = PageIndex < 0 ? 1 : PageIndex;
//每页显示的数量
this.PagerControl1.pageSize = PageSize;
//总页数
this.PagerControl1.pageCount = TotalPage;
//总数量
this.PagerControl1.recordCount = TotalRecord;
//显示的页数数字的个数
this.PagerControl1.NumCount = NumCount;
this.PagerControl1.ModelType = "{页信息} {首页} {上一页} {数字} {下一页} {尾页}";
}
}
中文参数HttpUtility.UrlEncode
保存
看看有需要的不
页面上Server.UrlDecode(字符串);