AutoCompleteExtender问题

时间:2010-10-05 13:18:38

标签: asp.net ajax autocomplete

我正在为我的ASP.NET项目使用AutoCompleteExtender,它正在拉动字段以显示正常。但是,当用户选择自动完成建议时,我需要该函数从该行(作为主键的“ID”列)中提取另一个字段,因为这是用于显示相关数据的必要字段。

这是我的代码

public string[] GetAutoComplete(string prefixText)
        {
            int count = 10;
            string sql = "SELECT * FROM SageAccount WHERE Name LIKE @prefixText";
            SqlDataAdapter da = new SqlDataAdapter(sql, "My Connection String(changed due to personal info being shown)");
            da.SelectCommand.Parameters.Add("@prefixText", 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["Name"].ToString(), i);
                i++;
            }
            return items;
        }

编辑:我正在尝试的一些修改过的代码:

public string[] GetAutoComplete(string prefixText, int count)
{
    string sql = "SELECT * FROM SageAccount WHERE Name LIKE @prefixText";
    SqlDataAdapter da = new SqlDataAdapter(sql, "Con string");
    da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 50).Value = prefixText + "%";
    DataTable dt = new DataTable();
    da.Fill(dt);
    List<string> Names = new List<string>();
    //string[] items = new string[dt.Rows.Count];
    int i = 0;
    foreach (DataRow dr in dt.Rows)
    {
            Names.Add(AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItem(dr["Name"], dr["ID"].ToString());
        //items.SetValue(dr["Name"].ToString(), i);
    }
    return Names.ToArray();

我在这里遇到的问题是它给了我错误:

  

'AjaxControlToolkit.AutoCompleteExtender.CreateAutoCompleteItems(string,string)'的最佳重载方法匹配'有一些无效的争论'

有什么想法吗?非常感谢

1 个答案:

答案 0 :(得分:0)

我过去使用隐藏字段来保存所选的ID。查看HERE 或者通过谷歌查看如何使用隐藏字段,我现在没有代码。

编辑2:检查您的新方法是否需要int参数,并且您正在调用发送字符串。并且..检查您是否正在调用另一个名为CreateAutoCompleteItems的方法,它似乎是缺失