首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

才学AJAX,问个简单有关问题,希望大家帮小弟我看看,多谢

2012-01-18 
才学AJAX,问个简单问题,希望大家帮我看看,谢谢!我用VS2005把一本书上的AJAX代码照抄了一边,但是报错~能告

才学AJAX,问个简单问题,希望大家帮我看看,谢谢!
我用VS2005把一本书上的AJAX代码照抄了一边,但是报错~能告诉我怎么修改一下么?代码如下
Default.aspx
------------------------
<%@   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   language= "javascript "   type= "text/javascript "   src= "lookup.js "> </script>
<script   language= "jscript "   type   = "text/javascript ">

mainLoop   =   function()
{
val   =   escape(queryField.value);
if   (lastVal   !=   val)
{
var   response   =this.GetSearchItems(val);
showQueryDiv(response.value);
lastVal   =   val;
}
setTimeout( 'mainLoop() ',   100);
return   true;
}
</script>

</head>
<body   onload= "javascript:InitQueryCode( 'TextBox1 ') ">
        <form   id= "form1 "   runat= "server ">
        <div   style= "text-align:   center ">
                <asp:TextBox   ID= "TextBox1 "   runat= "server "> </asp:TextBox> </div>
        </form>
</body>
</html>


Default.aspx.cs
---------------------------------
using   System;
using   System.Data;
using   System.Configuration;
using   System.Collections;
using   System.ComponentModel;
using   System.Drawing;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;
using   System.Data.SqlClient;
using   AjaxPro;

public   partial   class   _Default   :   System.Web.UI.Page  
{
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                Utility.RegisterTypeForAjax(typeof(_Default));
        }

        [AjaxMethod()]
        public   ArrayList   GetSearchItems(string   query)
        {
                ArrayList   items   =   new   ArrayList();

                string   myConnectionString   =
                        "Data   Source=localhost;user   id=sa;password=;initial   catalog=pubs ";
                string   mySelectQuery   =


                        string.Format(
                        "select   fname   from   employee   where   CHARINDEX( '{0} ',LOWER(fname))   =   1 ",
                        query);
                SqlConnection   myConnection   =   new   SqlConnection(myConnectionString);
                SqlCommand   myCommand   =   new   SqlCommand(mySelectQuery,   myConnection);
                myConnection.Open();
                SqlDataReader   myReader   =
                        myCommand.ExecuteReader(CommandBehavior.CloseConnection);
                while   (myReader.Read())
                {
                        items.Add(myReader.GetString(0));
                }
                myReader.Close();

                return   items;
        }
}
-----------------------------------

[解决办法]
你的TextBox的ID的确是 'TextBox1 ',但是,当页面在客户端被打开后,你看一下网页源代码。那个控件的ID已经变了,不是 'TextBox1 '了。所以,你在JS中用 'TextBox1 '引用就错了。
[解决办法]
你把Body上的Onload事件去掉。
在CS页面的PageLoad中写这样的句子:
Page.ClientScript.RegisterStartUpScript(this.Type, "test ", "InitQueryCode( "+TextBox1.ClientId+ ") ",true);
[解决办法]
这里好像不是clientid的问题
ajaxpro应该是这么调用函数的把

//var response =this.GetSearchItems(val);
var response =_Default.GetSearchItems(val);

热点排行