2012-07-24 57 views
0
[System.Web.Services.WebMethodAttribute(), System.Web.Script.Services.ScriptMethodAttribute()] 
public static string[] GetCompletionList(string prefixText, int count, string contextKey) 
{ 
    string sql = "SELECT Firstname, Lastname FROM [Patient] Where Firstname like @prefixText or Lastname like @prefixText2"; 
    SqlDataAdapter da = new SqlDataAdapter(sql, ConfigurationManager.ConnectionStrings["healthcareConnectionString1"].ToString()); 
    da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = "%" + prefixText + "%"; 
    da.SelectCommand.Parameters.Add("@prefixText2", SqlDbType.VarChar, 50).Value = "%" + prefixText + "%"; 
    DataTable dt = new DataTable(); 
    da.Fill(dt); 
    string[] items = new string[dt.Rows.Count]; 
    int i = 0; 
    foreach (DataRow dr in dt.Rows) 
    { 
     items.SetValue(dr["Firstname"].ToString() + " " + dr["Lastname"].ToString(), i); 
     i++; 
    } 
    return items; 
} 

Default.aspx中.NET C#Ajax工具包自動完成不能工作

<asp:ToolkitScriptManager 
     ID="ToolkitScriptManager1" runat="server" EnablePageMethods="true"> 
<asp:TextBox ID="TextBox1" runat="server" Width="199px"></asp:TextBox> 
<asp:AutoCompleteExtender ID="AutoCompleteExtender1" TargetControlID="TextBox1" 
     runat="server" ServiceMethod="GetCompletionList" ServicePath="WebService.asmx" MinimumPrefixLength="1" UseContextKey="True"> 
</asp:AutoCompleteExtender> 

我用上面的代碼做自動完成,但它不會工作建議的資料並沒有出現。我的代碼有問題嗎?

+1

ToolkitScriptManager元素看起來很奇怪,缺少結束標籤?我只是使用ScriptManager和AjaxControlToolkit,它工作得很好。 – Mithrandir 2012-07-24 07:27:32

+0

你的SQL實際上是否產生任何數據?您是否嘗試過調試SQL構建和執行的行,並查看罪魁禍首是SQL還是自動完成組件? – 2012-07-24 07:38:53

+0

嗨,我有我結束標籤離開了 user236501 2012-07-24 07:40:53

回答

0

你自動完成擴展控制看起來很不錯,我還沒有使用它,雖然(我用<cc1:AutoCompleteExtender>這在我的項目工程GR8)。 此外,服務方法也OK .. 只是檢查你是否按照適當的步驟來添加它的參考..

+0

<%@註冊的TagPrefix = 「ASP」 命名空間= 「AjaxControlToolkit」 大會= 「AjaxControlToolkit」 % >我在頁面頂部添加了這個。 – user236501 2012-07-24 07:42:08

+2

嗯..檢查你的步驟,添加服務引用,然後交配.... – Abhijeetchindhe 2012-07-24 07:46:45