从数据库加载更多项

Loading more items from database

本文关键字:加载 数据库      更新时间:2023-09-26

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

我有一个网页,里面有一堆评论(有点像Twitter),它从显示前19条评论开始。

到达底部并使数据库显示下一个19条评论等等的最佳方法是什么?

下面是我的代码:
 @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#锋利的

@{
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";

}

我想这个链接可能会对你有所帮助:http://www.sanwebe.com/2013/05/auto-load-records-on-page-scroll/comment-page-1

它的后端主要是PHP,但你可以很容易地用ASP来做。NET更容易。你可以让javascript保持原样,除了一些小的修改。最重要的是,您应该替换post请求uri

$.post('~/api/LoadMore',{'page': track_load}, function(data){
然后,在你的asp.net mvc web api你应该有一个方法与匹配的名称
IEnumerable<Comment> LoadMore(int page)
{
    //Return comments
}

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