1

abc 我尝试使用 WebMethod 创建一个无限滚动,但我总是收到“失败”消息。我检查了我的代码,没有发现任何错误。这是我的代码:

代码背后:

public int CurrentPage
    {
        get
        {
            // look for current page in ViewState
            object o = this.ViewState["_CurrentPage"];
            if (o == null)
                return 0;       // default to showing the first page
            else
                return (int)o;
        }

        set
        {
            this.ViewState["_CurrentPage"] = value;
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        sqlConn.ConnectionString = ConfigurationManager.AppSettings["Database"];        
        ItemsGet("EN");

    }



[WebMethod]
    public void ItemsGet(string Language)
    {

        try
        {

            sqlConn.Open();

            SqlDataAdapter myCommand = new SqlDataAdapter(@" Database query...", sqlConn);

            DataSet ds = new DataSet();

            myCommand.Fill(ds);

            PagedDataSource objPds = new PagedDataSource();
            objPds.DataSource = ds.Tables[0].DefaultView;
            objPds.AllowPaging = true;
            objPds.PageSize = 9;

            objPds.CurrentPageIndex = CurrentPage;

            Repeater1.DataSource = objPds;
            Repeater1.DataBind();

        }
        catch (Exception ex)
        {

        }

    }

ASPX:

<asp:Repeater ID="Repeater1" runat="server">
            <ItemTemplate>
                <ul class='hover_block'>
                                         <li style=''>
                                 <a style='width: 524px;margin-top:-1px;margin-left:-1px; height: 365px;border:1px solid #cecece; background-color: #ECecec;' href='  <%#DataBinder.Eval(Container.DataItem,"RecID") %>'>
                                     <img src='abc.com.tr/news/img/<%#DataBinder.Eval(Container.DataItem,"Image1")%>' alt='' class='left' style='margin-right: 10px; width: 500px; height: 300px;'/>
                                     <div class='Icerik'>
                                        <h3 class='News_Head'> <%#DataBinder.Eval(Container.DataItem,"Head") %></h3>
                                        <p style='font-family:Tahoma;'> <%#DataBinder.Eval(Container.DataItem,"Content") %></p>
                                        <b class='info'>View More</b>
                                    </div>
                                </a>

                            </li>
                        </ul>
            </ItemTemplate>
        </asp:Repeater>

这是我的脚本方面:

 <script type="text/javascript">
        $(window).scroll(function () {
            if ($(window).scrollTop() == $(document).height() - $(window).height()) {


                $.ajax({
                    type: "POST",
                    url: "default.aspx/ItemsGet",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: AjaxSucceeded,
                    error: AjaxFailed
                });

                function AjaxSucceeded() {
                    alert("result.d");
                }
                function AjaxFailed() {
                    alert("Failed");
                }
            }
        });</script>

为什么会失败?滚动时我总是收到警报(“失败”)。请帮忙!感谢您的回答

4

1 回答 1

3

试试这个方法,简单快捷

<script type="text/javascript" language="javascript">
        $(document).ready(function () {

            $(window).scroll(function () {
                if ($(window).scrollTop() == $(document).height() - $(window).height()) {
                    sendData();
                }
            });

            function sendData() {
                $.ajax(
                 {
                     type: "POST",
                     url: "AjaxProcess.aspx/GetData",
                     data: "{}",
                     contentType: "application/json; charset=utf-8",
                     dataType: "json",
                     async: "true",
                     cache: "false",

                     success: function (msg) {
                         $("#myDiv").append(msg.d);
                     },

                     Error: function (x, e) {
                         alert("Some error");
                     }

                 });

            }

        });


    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="myDiv">
    </div>
    </form>
</body>



[WebMethod]
    public static string GetData()
    {
        string resp = string.Empty;
        resp += "<p><span></span> This content is dynamically appended to the existing content on scrolling.</p>";
        return resp;
    }
于 2013-09-17T07:18:17.767 回答