[搜索框自动完成,小弟分不多,在线等待中]有关AjaxControlToolkit中的AutoCompleteExtender控件
--------------------编程问答-------------------- 都弄了一整天了,没弄出个结果。只能来这里求救了。
以前用xp+ie6、ie7没问题的,ie8没试过
现在用的是win7+ie8
我自己查出来的一个原因,控件在ie8中的解码问题。
求解决办法。
--------------------编程问答-------------------- 别沉了啊,在线等待中。。。
--------------------编程问答-------------------- 在线等待中,希望大哥大姐们帮帮忙! --------------------编程问答-------------------- --------------------编程问答-------------------- 既然结果中有正确的数据出现,就说明你的方法是没问题的,那可能是浏览器比较易做图吧 --------------------编程问答-------------------- 终于有人回复了,谢谢哈,顶起! --------------------编程问答-------------------- 呵呵!不用谢,都是同行,见外了。。。 --------------------编程问答-------------------- 我的浏览器问题吗?
但是奇怪的是输入字母开头的话,显示出来的是正确的。
数字开头的,显示出来的都有问题呢,郁闷中 --------------------编程问答-------------------- --------------------编程问答-------------------- 最怕的就是浏览器有问题了,万一用起来了,一些电脑上浏览器的问题,要整死人的。
我看很多网站都有这种搜索框的,应该有办法避免这种情况的吧 --------------------编程问答-------------------- 还有就是搜索出来的内容中,有0开头的话,显示出来的话,0都被去掉了的 --------------------编程问答-------------------- 继续等待中。 --------------------编程问答-------------------- 没遇到过,不知你代码怎么写的 --------------------编程问答-------------------- 页面部分代码:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:TextBox ID="txtSpe" runat="server" Width="120px" Font-Names="宋体" Font-Size="9pt" style="text-transform: uppercase;" onblur="txtSpeOnChange();" />
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtSpe" MinimumPrefixLength="3" CompletionInterval="1000" CompletionSetCount="5" ServicePath="~/GetSpeNumInfo.asmx" ServiceMethod="FindSpeInfo"></cc1:AutoCompleteExtender>
web服务:
/// <summary>
///GetSpeNumInfo 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class GetSpeNumInfo : System.Web.Services.WebService
{
public GetSpeNumInfo()
{
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}
[WebMethod]
public string[] FindSpeInfo(string prefixText, int count)
{
Get_Value gv = new Get_Value();
string strErr = "";
DataTable dt = gv.GetSpeInfo(prefixText, ref strErr);
string[] result = new string[dt.Rows.Count];
for (int i = 0; i < dt.Rows.Count; i++)
{
result.SetValue(dt.Rows[i][0].ToString(), i);
}
return result;
}
} --------------------编程问答-------------------- 你可以加断点调试, 看sql语句, 没错的话,在看输出的结果 --------------------编程问答-------------------- 试过了,返回的结果都是对的,但是显示出来就如一开始说的
明明查出来返回的是 0400,0403,0404,0405,0406
但是显示框里显示的却是 256,259,260,261,262 --------------------编程问答-------------------- 搞不清,还是等高手吧, 给个可以用的给你看看
--------------------编程问答-------------------- 你这个例子,跟我的写法其实一样呀 --------------------编程问答-------------------- 有没高手遇到过这种情况哦
public string[] GetCompletionList(string prefixText, int count)
{
if (count == 0)
{
count = 10;
}
if (prefixText.Equals("xyz"))
{
return new string[0];
}
Random random = new Random();
List<string> items = new List<string>(count);
for (int i = 0; i < count; i++)
{
char c1 = (char)random.Next(65, 90);
char c2 = (char)random.Next(97, 122);
char c3 = (char)random.Next(97, 122);
items.Add(prefixText + c1 + c2 + c3);
}
return items.ToArray();
}
补充:.NET技术 , ASP.NET