1

製品とその動作が正しく表示されるようにしましたListViewが、DataPager を使用してそのページの製品数を制限すると、ここでいくつかの問題が発生します

  1. 1回のクリックでページネーションが機能しません。2ページ目に移動するには、それらを2回クリックする必要があります。
  2. ページサイズが 5 で 2 ページ目をクリックすると、正常に動作し、残りの 5 つの製品が表示されますが、ページャー ナビゲーション リンク 1 をクリックして最初のページに戻ると、最初の 5 つの製品が正しく表示されません。

コードは次のとおりです。

.cs

 public void BindListView_Products()
        {            
            int cate_id = int.Parse(Request.QueryString["cate_id"].ToString());
            DataTable dt = new BALCate().GetProductsAllSubCate(cate_id);
            ListView_Products.DataSource = dt;
            ListView_Products.DataBind();
        }

    public void ddlNumber_SelectedIndexChanged(object sender, EventArgs e)
        {          
            listview_pager.PageSize = Convert.ToInt32(ddlNumber.SelectedValue);
            BindListView_Products();      
        }

.aspx

<asp:UpdatePanel ID="up1" runat="server"><ContentTemplate>
   //////some code
   <div class="limit">
                    <b>Show:</b>
                    <asp:DropDownList ID="ddlNumber" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlNumber_SelectedIndexChanged">
                        <asp:ListItem Selected="True" value="5">5</asp:ListItem>
                        <asp:ListItem value="10">10</asp:ListItem>
                        <asp:ListItem value="15">15</asp:ListItem>
                        <asp:ListItem value="20">20</asp:ListItem>
                        <asp:ListItem value="25">25</asp:ListItem>
                    </asp:DropDownList>
                </div>
    <asp:ListView ID="ListView_Products" ItemPlaceholderID="itemplaceholder1" runat="server">
        <LayoutTemplate>
        <asp:PlaceHolder ID="itemplaceholder1" runat="server">
        </asp:PlaceHolder>            
        </LayoutTemplate>              
        <ItemTemplate>        
                    <div>
                        <div class="left">
                            <div class="image">
                                <a href='ProductDetails.aspx?pid=<%#Eval("pid")%>'>
                                    <img alt="Apple Cinema 30&quot;" title="Apple Cinema 30&quot;"
                                    src="<%#"Images/" + Eval("pimg_mid1") %>"></a></div>
                            <div class="name">
                                <a href="javascript:;"><%#Eval("pname")%></a>
                                <p><%#Eval("pdesc")%></p>
                            </div>
                        </div>
                        <div class="right">
                            <div class="price">$<%#Eval("pcost")%></div>
                            <div class="cart">
                                <a class="button" onclick="addToCart();">
                                <span>Add to Cart</span></a></div>
                            <div class="wish-list">
                                <a onclick="addToWishList();">Add to Wish List</a><br>
                                <a onclick="addToCompare();">Add to Compare</a></div>
                        </div>
                        <p class="clear">
                        </p>
                    </div>        
            </ItemTemplate>                        
        </asp:ListView>        
        <div class="pagination">
                    <div class="results" style="float: right;">
                        <asp:DataPager PageSize="5" ID="listview_pager" PagedControlID="ListView_Products" runat="server">
                            <Fields><asp:NumericPagerField /></Fields>
                        </asp:DataPager>                        
                    </div>
         </div>    
     </ContentTemplate>
 </asp:UpdatePanel>
4

1 に答える 1

0

http://www.codeproject.com/Articles/28419/A-Basic-ASP-NET-Pager-Control あまりコーディングせずに優れたデータページャーを制御します..同じ問題がありましたが、グリッドビューを使用していました.リストビューでも動作します.. :)

于 2013-01-02T14:15:43.490 に答える