我做了一个ListView
来展示产品及其正常工作,但是当我使用 DataPager 来限制该页面中的产品数量时,这里出现了一些问题
- 一次点击分页不起作用。我必须点击它们 2 次才能导航到第二页等等。
- 当页面大小为 5 并且我单击第二页时,它可以正常工作并显示其余 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"" title="Apple Cinema 30""
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>