前段时间做项目,遇到一个问题,DataList里面放了用户控件,并且这个DataList要分页,在用户控件中写一个属性,如下所示:
private int schoolId;
public int SchoolId
{
get { return schoolId; }
set { schoolId = value;}
}
然后在DataList里面传这个SchoolId,然后通过这个SchoolId展示一些相同的属性,基本代码如下所示:
<asp:DataList ID="dlSchoolList" RepeatColumns="2" RepeatDirection="Horizontal"
runat="server">
<ItemTemplate>
<uc1:SchoolControl ID="SchoolControl1" runat="server" SchoolId='<%#Eval("Id") %>' />
</ItemTemplate>
</asp:DataList>
在分页的时候出现问题,点击下一页的时候,页面一片空白。解决方案如下:
在用户控件的属性时,要重新加载一下页面,如下所示代码
private int schoolId;
public int SchoolId
{
get { return schoolId; }
set { schoolId = value; Page_Load(null, null); }
}
在页面加载的时候不要加if(!isPostPack)这句话。
protected void Page_Load(object sender, EventArgs e)
{
DataRead();
}
这样就可以了。