我正在尝试使用c#asp.net Web应用程序中来自sql服务器的数据进行无限滚动,但它仅显示10条记录,这意味着它没有读取JavaScript,并且在滚动时显示loader.gif和隐藏它没有任何新记录
我做了我在搜索中发现的每一个小细节,但是什么也没做,我不明白为什么它不加载更多数据,我检查了sql server中的sql语句,所有工作的东西都显示了所有记录,但是在网络什么都没有显示
这是我的js代码
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
var pageIndex = 1;
var pageCount;
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
GetRecords();
}
});
function GetRecords() {
pageIndex++;
if (pageIndex == 2 || pageIndex <= pageCount) {
$("#loader").show();
$.ajax({
type: "POST",
url: "Default.aspx/Getpostsss",
data: '{pageIndex: ' + pageIndex + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
},
error: function (response) {
alert(response.d);
}
});
}
}
function OnSuccess(response) {
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
pageCount = parseInt(xml.find("PageCount").eq(0).find("PageCount").text());
var customers = xml.find("VideossTB");
customers.each(function () {
var customer = $(this);
var table = $("#dvCpostss table").eq(0).clone(true);
$(".vidtitl", table).html(customer.find("vidtitles").text());
$(".vidtim", table).html(customer.find("vidduration").text());
$(".vidsrc", table).html(customer.find("videonamee").text());
$(".vidpostr", table).html(customer.find("vidthumb").text());
$(".vidlnk", table).html(customer.find("vidsid").text());
$(".accsors", table).html(customer.find("videoviewrs").text());
$("#dvCpostss").append(table).append("<br />");
});
$("#loader").hide();
}
</script>
这是我的C#代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
videosRepeater.DataSource = GetpostssData(1);
videosRepeater.DataBind();
}
}
public static DataSet GetpostssData(int pageIndex)
{
string query = "[Getvidssforhome]";
SqlCommand cmd = new SqlCommand(query);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
cmd.Parameters.AddWithValue("@PageSize", 10);
cmd.Parameters.Add("@PageCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
return GetData(cmd);
}
private static DataSet GetData(SqlCommand cmd)
{
string strConnString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds, "VideossTB");
DataTable dt = new DataTable("PageCount");
dt.Columns.Add("PageCount");
dt.Rows.Add();
dt.Rows[0][0] = cmd.Parameters["@PageCount"].Value;
ds.Tables.Add(dt);
return ds;
}
}
}
}
[WebMethod]
public static string Getpostsss(int pageIndex)
{
return GetpostssData(pageIndex).GetXml();
}
并且div中的转发器称为#dvCpostsssure 它可以很好地显示数据,但只有前10条记录
还有些东西 我将使用路由网址 Default.aspx将只是 主页 因此,解决问题后我应该在此行中更改什么,还是不必这样做?
url: "Default.aspx/Getpostsss",
就像我说的那样,我希望从数据库中加载更多数据,但实际输出只是前10条记录
我的项目被停止,直到解决此问题为止