【发布时间】:2010-10-05 22:24:27
【问题描述】:
我正在为我的 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)' 的最佳重载方法匹配有一些无效的争论'
有什么想法吗?非常感谢
【问题讨论】:
标签: asp.net ajax autocomplete