从数据库加载更多项目

时间:2014-06-20 22:02:46

标签: c# javascript

我是ajax / C#sharp的新手,当用户向下滚动时,我试图找出从数据库中获取更多项目的最佳方式。

我有一个网页,其中有很多评论(像Twitter这样的东西),它首先显示前19条评论。

哪种方法可以达到最低点并使数据库显示下19条评论等等?

这是我的代码:

C#Sharp代码包含HTML

 @foreach (var photo in db.Query(photos, galleryId))
        {
            var hash2 = "@" + photo.UserName;
            <div class="comment1" class="com-@photo.Id">
                <div class="comment2">
                     <div class="doce">
                        <div class="uno_2">
                            <div class="picpic">
                                <img alt="miniatura" style="display: none" src="@Href("~/Photo/Thumbnail3", photo.UserId, new { size="medium" })" />
                            </div>
                        </div>
                         <div class="dos_2">
                             <strong>
                                 <a href="~/User/View/@photo.UserId" class="nombresito" title="Ver el perfil de @(photo.Nombre)">@photo.Nombre @photo.Apellido </a><span class="hash">@hash2</span>
                             </strong>
                         </div>
                     </div>
                    <div class="veintidos_2">
                        <div class="tres_3">
                            <div class="commenttext">@photo.CommentText</div>
                        </div>
                    </div>
                </div>
                </div>
        }

Javascript(由onLoad()函数自动触发

        var xmlhttp;
        var link = "/more?more=" + 19;

        if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else {// code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("com1").innerHTML = xmlhttp.responseText;

            }
        }


        xmlhttp.open("POST", link, true);
        xmlhttp.send();

C#Sharp

@{
var db = Database.Open("PhotoGallery");
   var galleryId = UrlData[0].AsInt();
var more = Request.QueryString["more"];


     var photos = "SELECT TOP 19 * FROM Photos INNER JOIN UserProfiles ON Photos.UserId = UserProfiles.UserId ORDER BY Id DESC";


}

1 个答案:

答案 0 :(得分:0)

我认为此链接可能对您有所帮助: http://www.sanwebe.com/2013/05/auto-load-records-on-page-scroll/comment-page-1

它的后端专注于PHP,但您可以轻松地使用ASP.NET轻松完成。您可以按原样保留javascript,除了少量修改。最重要的是,您应该更换帖子请求uri

$.post('~/api/LoadMore',{'page': track_load}, function(data){

然后,在你的asp.net mvc web api中,你应该有一个匹配名称的方法

IEnumerable<Comment> LoadMore(int page)
{
    //Return comments
}

如果您对网络API感到困惑,可以从这里开始:http://www.asp.net/web-api