当前位置: 代码迷 >> ASP.NET >> AspNetPager+updatepanel+repeater无刷新分页有关问题,需解答
  详细解决方案

AspNetPager+updatepanel+repeater无刷新分页有关问题,需解答

热度:1018   发布时间:2013-02-26 00:00:00.0
AspNetPager+updatepanel+repeater无刷新分页问题,急需解答
HTML code
    <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>


C# code
    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);    }
  相关解决方案