2010-12-08 70 views
0

我經歷了很多論壇,帖子等,但從來沒有找到真正好的答案。 我正在嘗試將AutoComplete Extender添加到TextBox並向用戶顯示一些提示。 將此代碼放入內容頁面時,一切正常。但我有一個基於一個主頁面的〜10個內容頁面,所以在每個頁面上重複代碼是完全愚蠢的。主頁中的自動完成擴展程序

有網絡上的一些答案,但他們都只是局部的,請檢查您是否wan't:

Could post only one link :/

這裏是我的代碼:

母版頁:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="~/AutoComplete.asmx" /> 
    </Services> 
</asp:ScriptManager> 

<asp:TextBox runat="server" ID="TextBox1"></asp:TextBox> 
      <ajax:AutoCompleteExtender 
       ID="AutoCompleteExtender1" 
       runat="server" 
       TargetControlID="TextBox1" 
       ServiceMethod="GetCompletionList" 
       ServicePath="~/AutoComplete.asmx" 
       MinimumPrefixLength="1" 
       CompletionInterval="500" 
       CompletionSetCount="2"> 
      </ajax:AutoCompleteExtender> 

WebService:

/// <summary> 
/// Summary description for AutoComplete 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService] 
public class AutoComplete : System.Web.Services.WebService 
{   
    [WebMethod] 
    [System.Web.Script.Services.ScriptMethod] 
    public string[] GetCompletionList(string prefixText, int count) 
    { 
     // Create array of movies 
     string[] movies = { "Star Wars", "Star Trek", "Superman", "Memento", "Shrek", "Shrek II" }; 

     // Return matching movies 
     return (from m in movies where m.StartsWith(prefixText, StringComparison.CurrentCultureIgnoreCase) select m).Take(count).ToArray(); 
    } 
} 

對於記錄,我檢查了網絡服務,它的工作正常

p.s.這是我的冷杉發表很抱歉,如果我做錯了什麼

回答

0

面對類似的問題,但唯一的解決方案似乎是在內容頁面本身編寫Webmethod和autocomplentxtender與其各自的控制可以保存在主頁。