分页不能与列表视图一起工作

本文关键字:一起 工作 视图 列表 不能 分页 | 更新日期: 2023-09-27 18:12:44

我遵循了codeproject的教程,并遇到了一个问题。

我有一个ListView,列出了我的网站的所有当前成员的名字:

<asp:ListView ID="lstMembers" runat="server">
    <LayoutTemplate>
        <table>
            <tr>
                <th>Name</th>
            </tr>
            <tr id="itemPlaceholder" runat="server"></tr>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr>
            <td>
                <%# Eval("MemberName") %>
            </td>
        </tr>
    </ItemTemplate>
</asp:ListView>

和下面的DataPager:

<asp:DataPager ID="DataPagerProducts" runat="server" PagedControlID="lstMembers"
    PageSize="3" OnPreRender="DataPagerProducts_PreRender">
    <Fields>
        <asp:NumericPagerField />
    </Fields>
</asp:DataPager>

我使用以下代码绑定到List(按照教程):

List<Members> member = new List<Members>();
protected void Page_Load(object sender, EventArgs e)
{
    if(Page.IsPostBack) return;
    DisplayMembers();
}
private void DisplayMembers()
{
    const string strSql = "SELECT DISTINCT [id], [memberNickname] FROM vwGetMemberDetails ORDER BY [memberNickname]";
    SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text };
    SqlDataReader rdr = sqlComm.ExecuteReader();
    while (rdr.Read())
    {
        member.Add(new Members
            {
                MemberId = rdr["id"],
                MemberName = rdr["memberNickname"]
            });
    }
    rdr.Close();
    DataConn.Disconnect();
}
private class Members
{
    public object MemberId { get; set; }
    public object MemberName { get; set; }
}
protected void DataPagerProducts_PreRender(object sender, EventArgs e)
{
    lstMembers.DataSource = member;
    lstMembers.DataBind();
}

当前呼机上有2个号码。但是,每次点击2,List不显示,Pager消失。

我通常是Repeater控件的频繁工作者,并且只使用这种方法作为假设的"更容易"的方法。

谁能告诉我我哪里错了?

分页不能与列表视图一起工作

您的变量modelDataPagerProducts_PreRender中没有更新,因此它将始终显示在页面加载中已经加载的相同数据集。

编辑


删除if(Page.IsPostBack) return;或在DataPagerProducts_PreRender中调用DisplayMembers()将为我工作