Asp.net學習記錄6--Textbox的自動完成、自動補充功能呢
類似百度、Google中搜索框自動提示的功能
需要微軟的ajaxToolkit開源工具包
解壓編譯後,在該目錄的SampleWebSite\Bin中將AjaxControlToolkit的dll和pdb檔案拷出,並引用到你的專案中。
在工具欄中將其引用,呼叫AutoCompleteExtender控制元件使用
aspx中使用例子如下:
</pre><p></p><p><span style="font-size:14px;"><span style="font-family: Arial; line-height: 26px;"></span></span></p><pre name="code" class="html">
<asp:ScriptManager runat="server" ID="ScriptManager1" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
父級角色:<asp:TextBox ID="txt_parent_rolename" autocomplete="off" runat="server"></asp:TextBox><br /><br />
<cc1:AutoCompleteExtender ID="actParent_RoleName" runat="server"
TargetControlID="txt_parent_rolename"
BehaviorID="AutoCompleteEx"
ServicePath ="~/WebServices/selectBaseInfo.asmx"
ServiceMethod = "GetRoleName"
MinimumPrefixLength="2"
CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="20"
CompletionListCssClass="autocomplete_completionListElement"
CompletionListItemCssClass="autocomplete_listItem"
CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
DelimiterCharacters=";, :"
ShowOnlyCurrentWordInCompletionListItem="true">
</cc1:AutoCompleteExtender>
</ContentTemplate>
</asp:UpdatePanel>
然後新建一個WebService服務,會生成兩個檔案asmx和cs,如上例中的selectBaseInfo.asmx,其程式碼檔案為selectBaseInfo.cs
selectBaseInfo.asmx檔案內容為:
<%@ WebService Language="C#" CodeBehind="~/App_Code/selectBaseInfo.cs" Class="selectBaseInfo"
%>
selectBaseInfo.cs檔案內容為:
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允許使用 ASP.NET AJAX 從指令碼中呼叫此 Web 服務,請取消對下行的註釋。
[System.Web.Script.Services.ScriptService]
public class selectBaseInfo : System.Web.Services.WebService {
public selectBaseInfo () {
//如果使用設計的元件,請取消註釋以下行
//InitializeComponent();
}
/// <summary>
/// 檢索角色名稱
/// </summary>
/// <param name="prefixText"></param>
/// <param name="count"></param>
/// <returns></returns>
[WebMethod]
public string[] GetRoleName(string prefixText, int count)
{
BLRoles blrole = new BLRoles();
List<string> item = blrole.queryRoleNamesByKeyword(prefixText.ToUpper(), 2, count);
string[] strReturn = null;
if(item!=null&&item.Count>0)
{
strReturn = item.ToArray();
}
return strReturn;
}
}