使用ASP.NET WebMethod的Jquery AJAX刷新整个页面

时间:2011-08-09 19:27:29

标签: c# javascript jquery .net ajax

我正在使用Jquery Ajax在我的表单中设置Label和ListBox的值。我意识到函数正确设置了值。但就在那之后,页面只刷新清除所有先前设置的值。为什么会这样?我是Jquery / Ajax的新手。我错过了任何基本面吗?在此先感谢。

我粘贴整个代码

        $(document).ready(function () {
            $('#Button1').bind('click', function clk() {
                $.ajax({
                    type: "POST",
                    url: "WebForm5.aspx/TestMethod",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (result) {
                        alert(result.d.ListBox.length);
                        for (var i = 0; i < result.d.ListBox.length; i++) {
                            alert(result.d.ListBox[i]);
                            $(document.createElement("option")).attr("value", result.d.ListBox[i]).html(result.d.ListBox[i])
   .appendTo('#<%=ListBox1.ClientID  %>');

                            $('#Label1').text(result.d.MyProperty);
                        }
                    }
                });
            })
        });                   

1 个答案:

答案 0 :(得分:8)

代码中的

Button1是一个asp按钮,它是一个提交按钮。单击它时,它将提交页面并刷新整个页面。如果您想要停止在按钮上提交页面,请单击return false,它将起作用。

$('#Button1').bind('click', function clk() {
                $.ajax({
                    type: "POST",
                    url: "WebForm5.aspx/TestMethod",
                    data: "{}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (result) {
                        alert(result.d.ListBox.length);
                        for (var i = 0; i < result.d.ListBox.length; i++) {
                            alert(result.d.ListBox[i]);
                            $(document.createElement("option")).attr("value", result.d.ListBox[i]).html(result.d.ListBox[i])
   .appendTo('#<%=ListBox1.ClientID  %>');

                            $('#Label1').text(result.d.MyProperty);
                        }
                    }
                });

  return false;
            })