如何使用asp转发器实现无限滚动?

时间:2013-11-18 10:57:01

标签: c# asp.net linq infinite-scroll

我的Web项目使用LINQ To SQL访问数据,使用转发器控件来显示它。 据我所知,转发器没有像GridView那样内置的分页系统,所以我想我会选择无限滚动。

我发现this jquery plugin似乎最初有效,但经过几次测试后,我发现它不再是“隐藏”物品了。

该项目使用“幕后”类进行数据访问,清除页面的部分类以处理数据的显示方式:

// App_Code/netGuestData.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using netguestModel;

public class netguestData
{
    private netguestEntities ne = new netguestEntities();

    public netguestData()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    public IEnumerable<post> GetPosts()
    {
        var posts = from p in ne.posts
                     select p;

        return posts;
    }
}

// ~/Default.aspx.cs
public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            loadGuestbook();
        }
    }

    private void loadGuestbook()
    {
        netguestData nd = new netguestData();

        rptGuestbook.DataSource = nd.GetPosts();
        rptGuestbook.DataBind();
    }
}

这是标记...

<asp:Repeater runat="server" ID="rptGuestbook" OnItemCommand="rptGuestbook_ItemCommand"
    OnItemDataBound="rptGuestbook_ItemDataBound">
    <ItemTemplate>
        <div runat="server" id="divPost" class="post">
            <div runat="server" id="divAuthor" class="author">
                <asp:Panel runat="server" ID="pnlAdmin" CssClass="delete-button" Visible="false">
                    <asp:Button runat="server" ID="btnDeletePost" CssClass="button" Text="Delete Post"
                        CommandName="DeletePost" CommandArgument='<%# Eval("postid") %>' />
                    <asp:Label runat="server" ID="lblShowEmail" Text='<%# Eval("showemail") %>' CssClass="hidden"></asp:Label>
                </asp:Panel>
                <ul>
                    <li><span>Posted By: </span>
                        <%# Eval("postauthor") %><br />
                    <li>
                        <asp:HyperLink runat="server" ID="lnkWeb" ImageUrl="~/Images/webicon.png" NavigateUrl='<%# Eval("webaddress") %>'></asp:HyperLink></li>
                    <li>
                        <asp:HyperLink runat="server" ID="lnkEmail" ImageUrl="~/Images/emailicon.png" NavigateUrl='mailto: <%# DataBinder.Eval(Container.DataItem, "emailaddress" %>'></asp:HyperLink></li>
                </ul>
            </div>
            <div runat="server" id="divMessage" class="post-message">
                <div class="post-date"><span>Posted On:</span> <%# Eval("postdate") %></div>
                <%# Eval("postmessage") %></div>
                <div class="scroll"></div>
        </div>
    </ItemTemplate>
</asp:Repeater>

这一切都很简单。为了使用转发器实现无限滚动,我找到this article on dotnetcurry,但这只是_Default分部类中的所有内容,它根本不适合我。

我一直在试图弄清楚如何根据我的情况调整这个例子,但到目前为止,我已经空了。

如果有人能帮助我在我的项目上进行无限滚动工作 - 即使你只是解释我必须做的事情的概念 - 我会非常感激。

提前致谢!

1 个答案:

答案 0 :(得分:0)

好的,所以我在facebook上的一个小组中询问过那里有人建议延迟加载。

Here's a question我前一段时间问过,有所有细节。

注意: 在更改我的代码以考虑问题的答案之后,我注意到这不会像我预期的那样将第10 /第3 /第4 /等10行的集合添加到现有集合中。