jQuery加载结果表单另一页ASP.NET

时间:2011-03-14 18:15:30

标签: asp.net jquery

我使用这种方式绑定ASP.NET GridView没有回发。 我想知道这种方式有什么问题? 有什么替代方法? 这是我的代码:

 <input id="btnLoadDIV" type="button" value="button" />
                  <div id="somediv">
        </div>
 <script>
   $(document).ready(function () {
            $("#btnLoadDIV").click(function (e) {
                e.preventDefault();
                  var url;
            url = "test.aspx?type=test1";
            $("#somediv").load(url);
            });
        });
     </script>

Test.aspx BehindCode代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Request.QueryString("type") = "test1" Then
bindgrid()
End If
End Sub

Test.Aspx标记代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    </form>
</body>
</html>

感谢。问候。

2 个答案:

答案 0 :(得分:2)

你应该注意的一些基本事项:

  1. 即使只有部分页面正在更新,页面也会完全执行它的生命周期。

  2. 网格视图占用空间很大,因此我没有长时间使用它们。

  3. 潜在的替代方案:

    1. 使用通用处理程序(.ashx)来运行ajax请求。
    2. 如果您真的想在网格视图上使用ajax,可能需要阅读:http://mattberseth.com/blog/2007/05/7_simple_steps_to_ajaxenable_y.html

答案 1 :(得分:1)

你的路很好。我唯一不同的做法是将URL的参数作为第二个参数传递给$.load。我觉得它更整洁:

$("#somediv").load("test.aspx", {type: "test1"});