C#ASP.NET,当我第一次点击它时,DataPager不会更改页面

时间:2013-11-08 21:02:46

标签: c# asp.net listview datapager

我有一个问题。

我写了这段代码:

<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,但我总是遇到同样的问题。我怎么解决呢? 谢谢大家!

2 个答案:

答案 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
}