我有个问题
我写了这段代码:
<asp:ListView ID="ListComment" runat="server">
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<div class="CommentArea" id='Comment<%#Eval("Id")%>'>
<div class="UserDate">
<span class="font07em fontunderline"><b>Inviato da: </b></span><span class="font07em"><b><a href="#"><%#Eval("Autore") %></a></b></span><span class="font07em fontunderline"><b> alle <%#Eval("Orario", "{0:hh':'mm}") %></b></span>
</div>
<div class="LikeDontLike">
<span class="font07em"><b>
<asp:LinkButton runat="server" ID="Like" CommandArgument='<%#Eval("Id")%>' OnClick="Mipiace_Click" >Like</asp:LinkButton>: <%#Eval("Mipiace") %> /
<asp:LinkButton runat="server" ID="DontLike" CommandArgument='<%#Eval("Id")%>' OnClick="Nonmipiace_Click" >Don't Like</asp:LinkButton>: <%#Eval("Nonmipiace") %></b></span>
</div>
<div class="UserComment">
<span class="font07em"><%#Eval("Commento") %></span>
</div>
</div>
</ItemTemplate>
</asp:ListView>
<asp:DataPager runat="server" ID="PageComment" PagedControlID="ListComment" PageSize="2">
<Fields>
<asp:NumericPagerField />
</Fields>
</asp:DataPager>
当我运行它时,我点击DataPager的页面,它不会改变视图。如果我点击第二次,它会改变。我试图把DataPager放入LayoutTemplate,但我总是遇到同样的问题。我如何解决它?谢谢大家!
3条答案
按热度按时间pxy2qtax1#
我想你正在使用page_load事件来绑定你的列表视图到你的数据源。你需要添加一个新的句柄列表视图的PagePropertysChanged事件来重新绑定你的列表视图。最后,你的数据绑定代码将在page_load事件(不需要检查回发)和listview_PagePropertysChanged事件中重复。
e4yzc0pl2#
我也遇到了同样的问题,并且发现我在Page_Load事件上渲染数据会扰乱List视图上渲染的数据。我的解决方案是为数据分页器添加OnPreRender事件,并在那里而不是Page_Load上渲染我的数据。
这是一个很好的例子:ASP.Net : DataPager Control always a step behind with paging
qncylg1j3#
你需要加上
然后在代码隐藏中