我有一个问题。
我写了这段代码:
<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,但我总是遇到同样的问题。我怎么解决呢? 谢谢大家!
答案 0 :(得分:1)
我想您正在使用page_load事件将listview绑定到数据源。 您需要添加一个新句柄listView的PagePropertiesChanged事件以再次重新绑定列表视图。最后,您的数据绑定代码将在page_load事件(不需要检查回发)和listview_PagePropertiesChanged事件中重复。
答案 1 :(得分:-1)
您需要添加
<asp:ListView ID="ListComment" runat="server" OnPagePropertiesChanging="Listcomment_PagePropertiesChanging">
然后在代码隐藏
protected void Listcomment_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
this.ListComment.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
// Rebind your ListComment
}