留言簿

我要留言
留言搜索

2012-05-29 23:25  陈胜利

你好,我用你的分页控件,不加我的样式的时候是好好的,也能用,如果加入我的样式后分页控件就变形了,但是还能用,我也不知道是那个CSS样式影响到它了,求助
回复:您好,这需要用firebug或chrome、IE9等浏览器自带的调试工具进行调试,找出相关CSS样式进行排查,这种问题是无法从您的描述中说清楚的。谢谢!

2012-05-29 21:29  phiree@gmail.com

urlrewritepattern问题及修改:
问题描述) 目前的url格式为 www.xxx.com/X省/X市, 用来X省X市的人员列表.(对应的实际url为 www.xxx.com/default.aspx?province=X省&city=X市). 希望用urlrewritepattern用如下url格式实现分页:"www.xxx.com/x省/x市/3" (3表示页数),但是中间的 /x省/x市/是可以为空的,例如 X省/3 表示 X省下所有人员的第三页. /3 表示所有人员的第三页.   现在我的urlRewritPattern设置为 "/%provice%/%city%/{0}",如果 url中没有省和市(www.xxx.com/3),则分页按钮的地址变为 "///3"
原因)Helper.cs第283行 GetHrefString 方法内 替换urlstring的值时,如果请求url内没有对应的参数,应该移除一个 "/"
我的解决方式)
将代码改为:

 foreach (Match m in mts)
                     {
                         prmValue = urlParams[m.Groups["m"].Value];
                         if (!string.IsNullOrEmpty(prmValue))
                         {
                             url = url.Replace(m.Groups["p"].Value, prmValue);
                         }
                         else
                         {
                             url = url.Replace(m.Groups["p"].Value+"/", string.Empty);
                         }
                     }
不知道是否有更合适的方案?
回复:您好,可以用一个默认值代替,比如0,代表所有省份。谢谢!

2012-05-28 10:44  郭骏杰

请问一下我用aspnetpage 分页不稳定 有时候分页很正常 有时候分页不加载数据。
 public void DataPage(string strWhere)
    {
        int page;
        if (Convert.ToInt32(Request.QueryString["page"]) <= 1)
        {
            page = 1;
        }
        else
        {
            page = Convert.ToInt32(Request.QueryString["page"]);
        }
        sgvNews.DataSource = "";
        sgvNews.DataSource = pro_news.NewPage(AspNetPager1.PageSize.ToString(), page.ToString(), strWhere);
        sgvNews.DataBind();
    }

pageload里面的
 if (Session["user"] != null)
        {
            string strWhere = GetWhere(ddlType.SelectedValue, ddlClass.SelectedValue, ddlAudit.SelectedValue, txtAuthor.Text.Replace("'", "''"));
            AspNetPager1.RecordCount = pro_news.AllCount(strWhere);
            DataPage(strWhere);
        }
回复:您好,不能加载数据和您的数据访问代码有关,AspNetPager和数据没有直接关系,请仔细检查调试。另外获取当前页索引用AspNetPager的CurrentPageIndex属性即可,无需用Request.QueryString["page"]这样的方法。谢谢!

2012-05-28 09:09  rexshop

在淘宝上买的商业AspNetPager你还没有给我文件呢
回复:已经发给您了,非常感谢您的支持!

2012-05-27 23:28  闵志伟

后来我尝试了下不用url分页  就行  求解。
回复:您好,这是您的url重写实现方式的问题,和AspNetPager没有关系,您需要检查调试你的url重写实现。谢谢!

2012-05-27 20:47  闵志伟

哦  上面的这句是多余的AspNetPager1.CurrentPageIndex = page - 1;

帮我看看是怎么回事哈
回复:请先去掉url重写功能看是否能正确分页。谢谢!

2012-05-27 20:46  闵志伟

我这个新闻是url分页  但不知道是什么原因  我数据都取对了 ,但最下面pager显示的当前页始终是1?  
前台:
                          <webdiyer:AspNetPager CssClass="pages" ID="AspNetPager1" runat="server" 
                     PrevPageText="上一页" NextPageText="下一页" 
                     FirstPageText="首页" LastPageText="末页"
                     OnPageChanged="AspNetPager1_Changed" CustomInfoTextAlign="Left" EnableUrlRewriting="true" UrlPaging="true">
                 </webdiyer:AspNetPager>



后台:
string pageUrl = "New/{0}.aspx";
        string typeWhere = "type=1";
        private void Bind()
        {
            if (Request["type"] != null && Regex.IsMatch(Request["type"], "^(0|1)$"))
            {
                typeWhere = "type=1 and int_1=" + Request["type"];
                pageUrl = "New/" + Request["type"] + "/{0}.aspx";
            }
            AspNetPager1.UrlRewritePattern = pageUrl;
            KeyValuePair<System.Data.DataSet, int> kv = new KeyValuePair<DataSet, int>();
            int page = 1;
            if (Request["page"] == null || int.TryParse(Request["page"], out page) == false)
            {
                page = 1;
            }
            kv = new ST.BLL.BUS_Article().GetPageDateSet(page, 2,typeWhere, "title,addtime,id,subtitle", "addtime desc,id desc");
            repNew.DataSource = kv.Key;
            repNew.DataBind();
            AspNetPager1.RecordCount = kv.Value;
            AspNetPager1.CurrentPageIndex = page - 1;
            AspNetPager1.PageSize = 2;
        }

        protected void AspNetPager1_Changed(object o, EventArgs e) 
        {
            Bind();
        }


急哈,有空帮我看看,谢谢!!!
回复:您好,这个问题应该是您url重写实现有问题,不知道您是怎么实现url重写的?请先不要启用url重写试试看是否能正确分页。谢谢!

2012-05-25 10:01  蛋蛋

老师,现在我的ASPNETPAGER显示出来了。可是不按照PAGESIZE来分页。请问有什么原因?
回复:3您好,这应该是您获取数据的问题,您没有把pagesize正确传递到数据获取方法中,或者没有按这个值来正确获取分页数据。请检查。谢谢!

2012-05-24 23:43  dandan

老师,我用的是repeater与ASPNETPAGE,可是页面不显示ASPNETPAGE控件!求帮助!

public partial class weathedit : System.Web.UI.Page
  {
  int id = 0;
  protected void Page_Load(object sender, EventArgs e)
  {
  if (!Page.IsPostBack)
  {
  BindGrid();
  //bindData(); //使用url分页,只需在分页事件处理程序中绑定数据即可,无需在Page_Load中绑定,否则会导致数据被绑定两次
  }
  }
  private void BindGrid()
  {
  string settings = ConfigurationManager.AppSettings["ConStr"].ToString();
  //Response.Write(settings);
  //Response.End();
  SqlConnection sqlCon = new SqlConnection(settings);
  sqlCon.Open(); //打开数据库连接
  string sqlstr = "select * from WeatherInfo";
  SqlCommand mycmd = new SqlCommand(sqlstr, sqlCon);//创建数据库命令
  SqlDataReader mydr = mycmd.ExecuteReader(CommandBehavior.CloseConnection);
  //Repeater数据控件绑定
  rptUser.DataSource = mydr;//指定数据源
  rptUser.DataBind();//绑定到指定的数据源
  }

  protected void rptUser_ItemDataBound(object sender, RepeaterItemEventArgs e)
  {
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  {
  System.Data.Common.DbDataRecord record = (System.Data.Common.DbDataRecord)e.Item.DataItem;
  int userId = int.Parse(record["weinfo_id"].ToString());
  if (userId != id)
  {
  ((Panel)e.Item.FindControl("plItem")).Visible = true;
  ((Panel)e.Item.FindControl("plEdit")).Visible = false;
  }
  else
  {
  ((Panel)e.Item.FindControl("plItem")).Visible = false;
  ((Panel)e.Item.FindControl("plEdit")).Visible = true;
  }
  }
  }

  protected void rptUser_ItemCommand(object source, RepeaterCommandEventArgs e)
  {
  if (e.CommandName == "Edit")
  {
  id = int.Parse(e.CommandArgument.ToString());
  }
  else if (e.CommandName == "Cancel")
  {
  id = -1;
  }
  else if (e.CommandName == "Update")
  {
  string weatherdate = ((TextBox)this.rptUser.Items[e.Item.ItemIndex].FindControl("txtdate")).Text.Trim();
  string weathertime = ((TextBox)this.rptUser.Items[e.Item.ItemIndex].FindControl("txttime")).Text.Trim();
  string weath = ((TextBox)this.rptUser.Items[e.Item.ItemIndex].FindControl("txtwea
回复:您好,没见到您有设置RecordCount属性的代码,请检查,这个属性的值代表要分页的总记录数,如果不设置的话默认就是0。谢谢!

2012-05-24 21:56  laowang

谢谢你的控件,谢谢你的热心,谢谢你的努力,祝你工作顺利
回复:谢谢支持!也祝您工作顺序,生活幸福!
;