当前位置:编程学习 > C#/ASP.NET >>

[搜索框自动完成,小弟分不多,在线等待中]有关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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,