Я использую AutoCompleteExtender для моего проекта ASP.NET, и он тянет поля, которые будут отображаться нормально.Однако, когда пользователь выбирает предложение автозаполнения, мне нужна функция для извлечения другого поля из строки (столбец «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)' содержит недопустимые аргументы '
Есть идеи?Большое спасибо