AutoCompleteExtender 出错
我使用AutoCompleteExtender控件实现自动输入完成。可运行后IE提示JS错误错误:Sys.ArgumentUndefinedException:Value cannot be undefined
Parameter name: type
代码:0
default.aspx
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:TextBox ID="TextBox1" runat="server" AutoComplete="off"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="TextBox1"
ServiceMethod = "GetCompletionList"
ScriptPath="SpSelect.asmx"
MinimumPrefixLength="1"
CompletionSetCount="15"
CompletionInterval="1000"
EnableCaching="true"
>
</ajaxToolkit:AutoCompleteExtender>
</div>
</form>
</body>
SpSelect.cs
--------------------编程问答-------------------- 难道没人用吗 --------------------编程问答-------------------- 楼主的AutoCompleteExtender版本是 3.5的还是2.0的 --------------------编程问答-------------------- 2.0 --------------------编程问答-------------------- 我的是3.5刚用了下正常,你设个断点,看看异常是在什么时候抛出的,是你后台代码已经执行返回了值就抛出异常还是,后台代码没有执行之前就抛异常了 --------------------编程问答-------------------- 我在public string[] GetCompletionList(string prefixText,int count) {
using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.OleDb;
using System.Collections.Generic; //List
using System.Data;
using System.Web.Script.Services;
/// <summary>
/// SpSelect 的摘要说明
/// </summary>
///
[ScriptService()]
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class SpSelect : System.Web.Services.WebService {
public SpSelect () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
//自动输入完成
[WebMethod]
public string[] GetCompletionList(string prefixText,int count) {
// 定义一个泛用集合对象 List 来储存建议词。
List<string> suggestions = new List<string>();
try
{
string sqlstr = "SELECT DISTINCT sp_mc FROM sp_gl WHERE sp_mc LIKE @prefixName ORDER BY 1";
OleDbParameter[] parm = new OleDbParameter[1];
parm[0] = new OleDbParameter("@prefixName", prefixText + "%");
OleDbDataReader dr = DBOperation.ExecuteReader(DBOperation.CONN_STRING_NON_DTC, CommandType.Text, sqlstr, parm);
while (dr.Read())
{
suggestions.Add(dr["sp_mc"].ToString());
}
return suggestions.ToArray();
}
catch (Exception ex)
{
suggestions.Add(ex.Message);
return suggestions.ToArray();
}
}
}
处设的断点。但是没走到这 --------------------编程问答-------------------- 我直接建的CTP项目。应该web.config不会有什么问题 --------------------编程问答-------------------- ?为什么所有的回复全变没了? --------------------编程问答-------------------- 路过来看看 --------------------编程问答-------------------- web.config中加上
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
就可以了!
补充:.NET技术 , ASP.NET