javascriptと次のSQLステートメント(SQL Server 2008)を使用して、.NETWebサイトで無限スクロールを実行しようとしています。このSQLは最初の10行を取得しますが、私のjavascriptにより、ユーザーがページの一番下までスクロールするたびにSQLが実行され、毎回同じ(最初の10)レコードがプルされますが、次の行をプルする必要がありますユーザーが一番下までスクロールするたびに、10レコード。ユーザーがページの一番下までスクロールするたびに、このsqlとrow_numberを使用して次の10行を取得するにはどうすればよいですか?
SELECT * FROM
(SELECT ROW_NUMBER() OVER (ORDER BY DateTime) As RowNum,
* From Topic) As a
WHERE RowNum
BETWEEN 1 AND 10
これがjavascriptです:
<script type="text/javascript">
$(document).ready(function () {
function lastPostFunc() {
$('#divPostsLoader').html('<img src="images/bigLoader.gif">');
//send a query to server side to present new content
$.ajax({
type: "POST",
url: "Default.aspx/Foo",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
if (data != "") {
$('.divLoadData:last').after(data.d);
}
$('#divPostsLoader').empty();
}
})
};
//When scroll down, the scroller is at the bottom with the function below and fire the lastPostFunc function
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
lastPostFunc();
}
});
});
</script>
これで、ストアドプロシージャに上記のSQLが含まれています。
<System.Web.Services.WebMethod()>
Public Shared Function Foo() As String
Dim strConn As String = "Data Source="
Dim conn As New SqlConnection(strConn)
Dim Cmd As New SqlCommand("InfiniteScroll", conn)
Cmd.CommandType = CommandType.StoredProcedure
Dim DA As New SqlDataAdapter(Cmd)
Dim DS As New DataSet()
DA.Fill(DS, "RefologyForumTopic")
Dim getPostsText As New StringBuilder()
Dim dv As DataView = DS.Tables(0).DefaultView
For Each myDataRow As DataRowView In dv
getPostsText.AppendFormat("price: {0}</br>", myDataRow("Topic"))
getPostsText.AppendFormat("description: {0}</br></p>", myDataRow("UserID"))
Next
getPostsText.AppendFormat("<div style='height:15px;'></div>")
Return getPostsText.ToString()
End Function