AutoCompleteExtender вопросы - PullRequest
       3

AutoCompleteExtender вопросы

0 голосов
/ 05 октября 2010

Я использую 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)' содержит недопустимые аргументы '

Есть идеи?Большое спасибо

1 Ответ

0 голосов
/ 05 октября 2010

В прошлом я делал это, используя скрытое поле для сохранения выбранного идентификатора.Проверьте ЗДЕСЬ или перейдите в Google и проверьте, как использовать скрытое поле. У меня сейчас нет кода.

РЕДАКТИРОВАТЬ 2: Убедитесь, что вы ожидаете параметр intна ваш новый метод, и вы звоните, отправив строку.и .. проверьте, что вы вызываете другой метод с именем CreateAutoCompleteItems, который, по-видимому, отсутствует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...