分页不能与列表视图一起工作
本文关键字:一起 工作 视图 列表 不能 分页 | 更新日期: 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
控件的频繁工作者,并且只使用这种方法作为假设的"更容易"的方法。
您的变量model
在DataPagerProducts_PreRender
中没有更新,因此它将始终显示在页面加载中已经加载的相同数据集。
编辑
删除if(Page.IsPostBack) return;
或在DataPagerProducts_PreRender
中调用DisplayMembers()
将为我工作