前台:<%@ 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>
后台:    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();
            }
        }
    }
如果查询出来内容,那么显示没错:如下:
但是比如我模拟数据库如果没查到内容:为什么会把整个页面返回来呢
我想实现如果 查询不到数据,就什么不返回...

解决方案 »

  1.   

    你ajax请求的那张页面和你所执行ajax功能的那张页面是同一张页面
    那自然会出现这种状况喽最好把两张页面分开,ajax请求那张页面用ashx一般处理程序页面
    如果硬要按你的做法,最好进行某些判断,判断页面是正常加载还是ajax请求
      

  2.   

    领导不让啊...不然我也想建个ashx页面
      

  3.   

        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();
    }
            }
        }
            $(document).ready(function() {            $("#Button1").click(function() { //按钮点击事件                Sel($("#TextBox1").val()); //执行Sel方法,并把文本框值传过去
                });
            });        function Sel(values) {            $.get("Default.aspx", { v: values,type:'ajax' }, function(dt) {                alert(dt);//弹出查询结果
                });
            }
      

  4.   

      Response.End();这样页面就什么都没了,连文本框和按钮都没了
      

  5.   

    是你自己说不要东西的啊
    是进行过判断的啊  ajax请求不到数据就不返回任何数据
      

  6.   

    我说不要东西是 就是还保留页面原有的的内容... 就是data 不要返回页面的元素
      

  7.   

    因为返回的是个数组我要eval的,如果返回的是页面我这就报错了,我不想页面显示脚本错误
            function Sel(values) {            $.get("Default.aspx", { v: values }, function(dt) {
                    temp = eval(dt);
                    alert(temp); //弹出查询结果
                });
            }