日期:2014-05-16  浏览次数:20411 次

jquery $.get()问题....
前台:
C# code

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>

    <script type="text/javascript">

        $(document).ready(function() {

            $("#Button1").click(function() { //按钮点击事件

                Sel($("#TextBox1").val()); //执行Sel方法,并把文本框值传过去
            });
        });

        function Sel(values) {

            $.get("Default.aspx", { v: values }, function(dt) {

                alert(dt);//弹出查询结果
            });
        }
       
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" />
    </form>
</body>
</html>



后台:
C# code

    protected void Page_Load(object sender, EventArgs e)
    {
        var v = Request["v"]; //获取参数,也就是文本框的值

        if (!string.IsNullOrEmpty(v)) //判断是否为空
        {
            Response.Clear();

            if (v == "v") //v==v,是为了模拟查询数据库的返回结果
            {
                var data = "[[\"1\",\"600000\",\"600000\",\"浦发银行\"],[\"2\",\"600001\",\"600001\",\"邯郸钢铁\"],[\"3\",\"600002\",\"600002\",\"齐鲁石化\"]]";
                Response.Write(data);
                Response.Flush();
                Response.End();
            }
        }
    }



如果查询出来内容,那么显示没错:如下:


但是比如我模拟数据库如果没查到内容:为什么会把整个页面返回来呢


我想实现如果 查询不到数据,就什么不返回...

------解决方案--------------------
写个ELSE。。。
------解决方案--------------------
你ajax请求的那张页面和你所执行ajax功能的那张页面是同一张页面
那自然会出现这种状况喽

最好把两张页面分开,ajax请求那张页面用ashx一般处理程序页面
如果硬要按你的做法,最好进行某些判断,判断页面是正常加载还是ajax请求
------解决方案--------------------
探讨

写个ELSE。。。

------解决方案--------------------
C# code
    protected void Page_Load(object sender, EventArgs e)
    {
        var v = Request["v"]; //获取参数,也就是文本框的值
        string type = Request.QueryString["type"];
        if(type=='ajax'){

        if (!string.IsNullOrEmpty(v)) //判断是否为空
        {
            Response.Clear();

            if (v == "v") //v==v,是为了模拟查询数据库的返回结果
            {
                var data = "[[\"1\",\"600000\",\"600000\",\"浦发银行\"],[\"2\",\"600001\",\"600001\",\"邯郸钢铁\"],[\"3\",\"600002\",\"600002\",\"齐鲁石化\"]]";
                Response.Write(data);
                Response.Flush();
                Response.End();
            }
        }else{
Response.End();
}
        }
    }