ASP.Net中的无限滚动(无尽滚动)未显示更多数据

时间:2019-04-15 20:21:59

标签: javascript c# asp.net sql-server webforms

我正在尝试使用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条记录

  

我的项目被停止,直到解决此问题为止

0 个答案:

没有答案