从数据库加载更多项
本文关键字:加载 数据库 | 更新日期: 2023-09-27 18:09:41
我是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