Darsh12345 Ответов: 1

Как реализовать автозаполнение текстового поля для нескольких значений, разделенных запятой?


этот код возвращает одно значение, но я хочу отобразить его как 123,224,456,786 в текстовом поле.

Что я уже пробовал:

[System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod(EnableSession = true)]
    public static List<string> employeeid(string prefixText, int count)
    {
        OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["Conn"].ConnectionString.ToString());
        DataTable dtbl = new DataTable();
        OracleDataAdapter da = new OracleDataAdapter();
        List<string> Empid = new List<string>();
        try
        {
            string str = "select '3'|| emp_code || '0' as empcode from empmaster where '3'|| emp_code || '0' like '" + prefixText + "%'";
            dtbl = new DataTable();
            da = new OracleDataAdapter(str, con);
            if (con.State == ConnectionState.Closed)
            {
                con.Open();
            }
            da.Fill(dtbl);
            for (int i = 0; i < dtbl.Rows.Count; i++)
            {
                Empid.Add(dtbl.Rows[i]["empcode"].ToString());
            }

            return Empid;
        }
        catch (Exception ex)
        {
            throw ex;
        }

    }

Leo Chapiro

>этот код возвращает одно значение
Я думаю, что этот код возвращает список<string>?
Теперь вам нужно разобрать этот список и добавить cooma или что-то еще между частями?
Или в чем именно здесь проблема?

Darsh12345

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

Member1x

Ладно, давай я все проясню. У вас есть список "строка". Вы каким-то образом связываете это с вашим текстовым полем автозаполнения. Итак, когда вы вводите что-то в это текстовое поле, вы хотите, чтобы где-то показывались подходящие emp_codes к этому тексту, разделенные запятой? Что ты получишь теперь? Только первый матч?Как и где вы формируете свои результаты? Знаете ли вы, какие индексы вашего Empid-списка вам нужно показать? Если да то вы можете сделать что то вроде этого:

string result = "";
int[] indices = {1, 4, 15, 16}; // Just an example; you need to get the indices by searching via RegEx for example
foreach (int i in indices)
{
   result += Empid[i] + ","; // Create your string with values separated by comma
}
result = result.TrimEnd(','); // Remove last comma

Теперь результат должен отображать то, что вы хотите.

Richard Deeming

catch (Exception ex)
{
    throw ex;
}

Не делай этого! Вы просто выбросили трассировку стека, что значительно затрудняет поиск реальной причины исключения.

Если вы действительно хотите повторно создать исключение, просто используйте throw; вместо:
catch (Exception ex)
{
    throw;
}


Но так как вы ничего не делаете с исключением, которое вы поймали, вы должны просто удалить try..catch блок вместо этого.

1 Ответов

Рейтинг:
0

manilkumar73

Ваш метод возвращает объект [List] , содержащий строковые значения. Все что вам нужно сделать это разобрать список как показано ниже :
напр.:
var result = строка.Join(",", new List<string> { '1', '2', '3', '4', '5' })