AspNetPager+updatepanel+repeater无刷新分页问题,急需解答
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" style="width:566px; float:left;" ClientIDMode="AutoID" ViewStateMode="Enabled"> <ContentTemplate> <asp:Repeater ID="adlistRP" runat="server" ViewStateMode="Enabled" OnItemCommand="adlistRP_ItemCommand" > <ItemTemplate> <div class="content"> <asp:Image ID="Image1" ImageUrl='<%#Eval("ss_pic") %>' runat="server" style="margin:5px;width:60px;height:60px;float:left;" /> <div style="width:490px;float:right"> <div style="margin:5px 0;width:490px;float:right;"> <a><%#Eval("ss_name") %>:</a><%#Eval("ad_word") %><%#Eval("ad_id") %> </div> <div style="float:right;width:490px;height:25px;"> <div style="width:40px;height:25px;float:right; padding-left:3px; border-left:1px solid #dddddd; "> <asp:Button ID="Button2" CommandName="1" CommandArgument='<%#Eval("ad_id")%>' runat="server" Text="评论" style="background-color:white; border: 0px; height:28px; cursor:pointer;" /> </div> </div> </div> </div> </ItemTemplate> </asp:Repeater> <webdiyer:AspNetPager ID="AspNetPager1" runat="server" Width="610px" FirstPageText="第一页" LastPageText="最后一页" NextPageText="下一页" PrevPageText="上一页" Font-Names="Arial" BackColor="#F8B500" AlwaysShow="true" ShowInputBox="Always" SubmitButtonText="转到" SubmitButtonStyle="botton" OnPageChanging="pageBind_PageChanging" ForeColor="Black" HorizontalAlign="Center" PageSize="10" style="font-size: 12px; color: #0099ff; background-color: #ffffff; text-decoration: none" UrlPaging="false" InvalidPageIndexErrorMessage="请请输入正确的页码!" ShowNavigationToolTip="True" TextAfterInputBox="页" TextBeforeInputBox="第" PageIndexBoxType="DropDownList" PageIndexOutOfRangeErrorMessage="请请输入正确的页码!" ShowPageIndexBox="Always" ViewStateMode="Enabled" > </webdiyer:AspNetPager> </ContentTemplate> </asp:UpdatePanel>
protected string rank { get; set; }//用于存放排名广告读取的sql语句 protected string free { get; set; }//用于存放免费广告读取的sql语句 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { rank = "select * from adlist where ad_top='N'";//我随便写的试验用的sql语句。 free = "select * from adlist where ad_top='Y'";//我随便写的试验用的sql语句。 BindData(rank, free); } } //数据绑定 protected void BindData(string rank,string free) { DBaction db = new DBaction(); DataTable dt1 = db.Select(rank);//获取排名广告 DataTable dt2 = db.Select(free);//获取免费广告 DataTable dt = new DataTable(); dt = dt1; dt.Merge(dt2);//将排名广告与免费广告何为一张表 AspNetPager1.PageSize = 10; AspNetPager1.RecordCount = dt.Rows.Count; //设置一个新表list,内容为要绑定的信息 DataTable list = dt.Clone();//复制dt的表结构 //设置最后一条记录在list中的index值。 int LastSize=AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1)+AspNetPager1.PageSize-1; //如果为最后一页则,lastsize取值为list表中的最大index值 if (LastSize > dt.Rows.Count - 1) { LastSize = dt.Rows.Count - 1; } //将要绑定的信息从dt表中放入list表 for (int i = AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1); i <= LastSize; i++) { list.Rows.Add(dt.Rows[i].ItemArray); } //创建dataset ds,将list表放入 DataSet ds = new DataSet(); ds.Tables.Add(list); //绑定repeater adlistRP.DataSource = ds.Tables[0]; adlistRP.DataBind(); } //翻页事件 protected void pageBind_PageChanging(object src, PageChangingEventArgs e) { AspNetPager1.CurrentPageIndex = e.NewPageIndex; BindData(rank,free); }