Как выбрать несколько элементов с помощью расширителя автозаполнения в С#?

В моем проекте я использую расширитель автозаполнения. Используя его, я выбираю только один элемент. Но я хочу выбрать несколько элементов. Что мне делать. Пожалуйста, помогите мне. ниже мой код:

aspx-страница:

<asp:TextBox ID="TextBox1" runat="server"  CssClass="autosuggest  ui-timepicker-input" Width="300px"></asp:TextBox>

        <ajaxToolkit:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server" DelimiterCharacters=""
            Enabled="True" ServiceMethod="GetListofCountries" MinimumPrefixLength="2" EnableCaching="true" CompletionSetCount="10" CompletionInterval="10"  FirstRowSelected="false"
            TargetControlID="TextBox1">
        </ajaxToolkit:AutoCompleteExtender>

Страница aspx.cs:

[System.Web.Script.Services.ScriptMethod()]
        [System.Web.Services.WebMethod]
        public static List<string> GetListofCountries(string prefixText, int count)
        {
            //using (SqlConnection sqlconn = new SqlConnection(ConfigurationManager.ConnectionStrings["con2"].ConnectionString))
            //{
            //    sqlconn.Open();
            //    SqlCommand cmd = new SqlCommand("select UserEmail from [User]  where Useremail like '%" + prefixText + "%'", sqlconn);
            //    cmd.Parameters.AddWithValue("@prefixText", prefixText);
            //    SqlDataAdapter da = new SqlDataAdapter(cmd);
            //    DataTable dt = new DataTable();
            //    da.Fill(dt);
            //    List<string> Emailid = new List<string>();
            //    for (int i = 0; i < dt.Rows.Count; i++)
            //    {
            //        Emailid.Add(dt.Rows[i]["UserEmail"].ToString());
            //    }
            //    return Emailid;
            //}





            List<string> customers = new List<string>();
            using (SqlConnection conn = new SqlConnection())
            {
                List<string> terms = prefixText.Split(',').ToList();
                terms = terms.Select(s => s.Trim()).ToList();

                //Extract the term to be searched from the list
                string searchTerm = terms.LastOrDefault().ToString().Trim();

                //Return if Search Term is empty
                if (string.IsNullOrEmpty(searchTerm))
                {
                  //  return 
                }

                //Populate the terms that need to be filtered out
                List<string> excludeTerms = new List<string>();
                if (terms.Count > 1)
                {
                    terms.RemoveAt(terms.Count - 1);
                    excludeTerms = terms;
                }

                conn.ConnectionString = ConfigurationManager
                        .ConnectionStrings["con2"].ConnectionString;
                using (SqlCommand cmd = new SqlCommand())
                {
                    string query = "select UserEmail from [User]  where Useremail like '%" + prefixText + "%'";

                    //Filter out the existing searched items
                    if (excludeTerms.Count > 0)
                    {
                        query += string.Format(" and UserEmail not in ({0})", string.Join(",", excludeTerms.Select(s => "'" + s + "'").ToArray()));
                    }
                    cmd.CommandText = query;
                    cmd.Parameters.AddWithValue("@prefixText", prefixText);
                    cmd.Connection = conn;
                    conn.Open();
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        while (sdr.Read())
                        {
                            //customers.Add(string.Format("{0}-{1}", sdr["Userid"], sdr["CustomerId"]));
                            customers.Add(string.Format("{0}", sdr["UserEmail"]));
                        }
                    }
                    conn.Close();
                }
                return customers;


            }

но он дает только одно значение. Я хочу выбрать несколько элементов. Пожалуйста, помогите мне.


person Anil Kumar    schedule 20.09.2015    source источник
comment
Используйте параметры SQL вместо этого " + prefixText + ".   -  person Roman Dibikhin    schedule 20.09.2015
comment
@Roman Dibikhin sql параметры значит?   -  person Anil Kumar    schedule 20.09.2015
comment
Я использую cmd.Parameters.AddWithValue(@prefixText, prefixText);   -  person Anil Kumar    schedule 20.09.2015
comment
Да, это сделает ваш код немного безопаснее.   -  person Roman Dibikhin    schedule 20.09.2015
comment
@Роман Дибихин а как выбрать несколько элементов.помогите пожалуйста   -  person Anil Kumar    schedule 20.09.2015
comment
Попробуйте это stackoverflow.com/questions/18824638/   -  person Roman Dibikhin    schedule 20.09.2015


Ответы (1)


наконец, я получил ответ на вышеуказанный вопрос. В AutoCompleteExtender добавьте DelimiterCharacters="," and ShowOnlyCurrentWordInCompletionListItem="true" . добавьте эти два элемента для AutoCompleteExtender. Это сработает для меня. Если кому-то нужен такой вопрос, я надеюсь, что этот ответ поможет вам, поэтому я разместил здесь. Спасибо.

person Anil Kumar    schedule 07.10.2015
comment
Это работает. Если работает дайте +1. СПАСИБО - person Anil Kumar; 07.10.2015