2012-07-24 61 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