none
怎么实现自动填充 RRS feed

  • 问题

  • 请问有自动填充TEXTBOX的实例吗?

    我希望能够在文本框里面输入几个字,然后下面就弹出系列的选择。比较类似百度或者GOOGLE。

    2012年3月13日 8:15

答案

  • 你好,之所以出现命名空间不存在的问题,是因为这个命名空间并不是微软标准类库,是示例中的自定义类库。你只要完全仿造中文示例实现从数据库中取出数据即可,比如:

    1. //获得景区   
    2.     [WebMethod]       
    3.     public string[] GetScenic(string prefixText,int count)   
    4.     {
    5.       List<string> result = new List<string>();
            using(SqlCommand cmd = new SqlCommand("select 字段名称1 from xxx where [字段] Like '%"+prefixText+"%'",new SqlConnection("…………"))
            {
                SqlDataReader rd = cmd.ExecuteReader();
                while(rd.Read())
                 {
                   result.Add(rd[0].ToString());
                 }
                 
            }
            return result.ToArray();
    6.     }   


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已编辑 ThankfulHeart 2012年3月13日 11:57
    • 已标记为答案 彭123 2012年3月13日 13:25
    2012年3月13日 11:56

全部回复

  • 填充选项的值来自于SQL表
    2012年3月13日 8:16
  • 填充选项的值来自于SQL表

    你应该使用微软的AJAX的AutoImpleteTextBox插件,详情见:

    1)基本教程(英文):http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

    2)中文示例:http://www.sosuo8.com/article/show.asp?id=2934


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年3月13日 8:56
  • 填充选项的值来自于SQL表

    你应该使用微软的AJAX的AutoImpleteTextBox插件,详情见:

    1)基本教程(英文):http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AutoComplete/AutoComplete.aspx

    2)中文示例:http://www.sosuo8.com/article/show.asp?id=2934


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    你好,中文实例产生了错误
    错误 1 未能找到类型或命名空间名称“ET_ERP”(是否缺少 using 指令或程序集引用?) C:\WebSite3\App_Code\AutoComplete.cs 38 9 C:\WebSite3\

    这个应该去哪里引用呢?

    2012年3月13日 9:08
  • 你应该根据你的版本下载对应的AJAX控件:

    1)For4.0:AjaxControlToolkit.Binary.NET4.zip

    2)For3.5:AjaxControlToolkit.Binary.NET35.zip

    然后
    打开项目,拖拽解压后的一个dll文件到工具栏上,最后拖拽一个TextBox到页面上,鼠标移动到右上角出现提示性小箭头,然后选择扩展,在扩展框中选择AutoComplete,再按照给出的链接中教程去一步步做。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年3月13日 9:12
  • 你好,英文的实例我已经实现了。

    但是我按照你给的链接试图模仿中文实例时就出现了以上问题。

    2012年3月13日 9:17
  • 你好,之所以出现命名空间不存在的问题,是因为这个命名空间并不是微软标准类库,是示例中的自定义类库。你只要完全仿造中文示例实现从数据库中取出数据即可,比如:

    1. //获得景区   
    2.     [WebMethod]       
    3.     public string[] GetScenic(string prefixText,int count)   
    4.     {
    5.       List<string> result = new List<string>();
            using(SqlCommand cmd = new SqlCommand("select 字段名称1 from xxx where [字段] Like '%"+prefixText+"%'",new SqlConnection("…………"))
            {
                SqlDataReader rd = cmd.ExecuteReader();
                while(rd.Read())
                 {
                   result.Add(rd[0].ToString());
                 }
                 
            }
            return result.ToArray();
    6.     }   


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    • 已编辑 ThankfulHeart 2012年3月13日 11:57
    • 已标记为答案 彭123 2012年3月13日 13:25
    2012年3月13日 11:56
  • 最终的测试代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    
    <%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        
        </div>
        <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">  
            </asp:ToolkitScriptManager>  
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  
            <asp:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"   
               ServiceMethod="GetScenic" ServicePath="~/ProjectManage.asmx"   
               MinimumPrefixLength="1" CompletionSetCount="3" CompletionInterval="100"  
                DelimiterCharacters="" Enabled="True" UseContextKey="True"   
                TargetControlID="TextBox1" EnableCaching="true">  
            </asp:AutoCompleteExtender>  
    
        </form>
    </body>
    </html>
    

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    
    /// <summary>
    ///ProjectManage 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    //若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
    [System.Web.Script.Services.ScriptService]
    public class ProjectManage : System.Web.Services.WebService
    {
    
        public ProjectManage()
        {
    
            //如果使用设计的组件,请取消注释以下行 
            //InitializeComponent(); 
        }
        [WebMethod]
        public string[] GetScenic(string prefixText, int count)
        {
            List<string> result = new List<string>(count);//泛型       
            string sql = "select top " + count + " name from test1 where name Like '%" + prefixText + "%'";
            SqlConnection sqlcon = new SqlConnection("Data Source=BYZ-1;Initial Catalog=test;Integrated Security=True");
            sqlcon.Open();
            SqlCommand cmd = new SqlCommand(sql, sqlcon);
            SqlDataReader rd = cmd.ExecuteReader();
            while (rd.Read())
            {
                result.Add(rd[0].ToString());
            }
            sqlcon.Close();
            return result.ToArray();
        }
    
    }

    又学会一样东西。
    2012年3月13日 13:27
  • 很高兴你解决了问题!希望以后多来MSDN交流技术或者共享更多的答案和成果!谢谢!

       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年3月14日 1:20