Бесконечная прокрутка (Endless Scroll) в ASP.Net не показывает больше данных - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь сделать бесконечную прокрутку, используя данные с сервера sql в веб-приложении c # asp.net, но он показывает мне всего 10 записей, что означает, что он не читал JavaScript, а при прокрутке - loader.gif и hid. это без каких-либо новых записей

Я сделал все мелкие детали, которые я нашел в моем поиске, но ничего, я не могу понять, почему он не загружает больше данных, я проверил оператор SQL на сервере 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 calld #dvCpostss уверен он показывает данные очень хорошо, но только первые 10 записей

тоже что-то я буду использовать URL маршрутизации так Default.aspx будет просто Home так что я должен изменить в этой строке после решения проблемы или нет?

 url: "Default.aspx/Getpostsss",

Как я уже сказал, я ожидаю загрузки большего количества данных из базы данных, но фактический результат - только первые 10 записей

мой проект остановлен до решения этой проблемы спасибо заранее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...