<%@ WebService Language="C#" Class="WebService" %> namespace BaiJie.Web { using System; using System.Collections; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Configuration; using System.Data; using System.Collections.Generic;[WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { [WebMethod] [System.Web.Script.Services.ScriptMethod] public string[] GetCompletionList(string prefixText) { BJMsgInfo MsgInfo = new BJMsgInfo(); MsgInfo.CompanyName = prefixText; DataTable dt = WebManager.List(MsgInfo, "", "CompanyName", "&companyname%", ""); List<string> items = new List<string>(); foreach (DataRow dr in dt.Rows) { items.Add(dr["CompanyName"].ToString()); } return items.ToArray(); }
原理类似,input 的 onkeyup \ onpropertychange 触发动态向服务器发送查询请求,div 模拟下拉列表
楼上已经具体给出实现方式
ajax + javascript + 隐藏div(div中放table)
我有现成代码
Namespace="System.Web.UI" TagPrefix="asp" %><%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<tr>
<td align="left" valign="middle"><table border="0" cellpadding="0" cellspacing="0" class="k25">
<tr>
<td width="80" align="left" valign="middle"> 商家名称:</td>
<td align="left" valign="middle">
<asp:TextBox ID="BJMsgInfo_CompanyName" runat="server" class="bk8"></asp:TextBox>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" ServicePath="baidu/AutoComplete.asmx" ServiceMethod="GetCompletionList" TargetControlID="BJMsgInfo_CompanyName" MinimumPrefixLength="1" EnableCaching="true">
</cc1:AutoCompleteExtender> <%----%>
<%-- <input name="textfield24222" type="text" class="bk8" style="width:193px;" />--%>
</td>
</tr>
</table></td>
</tr>
namespace BaiJie.Web
{
using System;
using System.Collections;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Configuration;
using System.Data;
using System.Collections.Generic;[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService { [WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText)
{
BJMsgInfo MsgInfo = new BJMsgInfo();
MsgInfo.CompanyName = prefixText;
DataTable dt = WebManager.List(MsgInfo, "", "CompanyName", "&companyname%", ""); List<string> items = new List<string>();
foreach (DataRow dr in dt.Rows)
{
items.Add(dr["CompanyName"].ToString());
}
return items.ToArray(); }
}}