Ajax Control Toolkit AutoCompleteExtender удаляет нули и выдает фантомные значения - PullRequest
1 голос
/ 31 января 2009

Я использую AutoCompleteExtender из Ajax Control Toolkit , и он ведет себя ужасно.

Мой метод обслуживания показан здесь:

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] getEJMaps(string prefixText, int count)
{   // method that returns the auto-suggest for the EJMaps positions
    string file_location = HttpContext.Current.Server.MapPath("~") + Utils.Settings.Get("attachments") + "ejmaps\\ejmaps.xml";
    XElement x = XElement.Load(file_location);
    string[] positions = (from p in x.Descendants("position") where p.Value.StartsWith(prefixText) orderby p.Value select p.Value).ToArray();
    if (positions.Count() == 0)
        return new string[] { "No Matching Results" };
    else return positions;
}

И все работает нормально, если я вызываю его на тестовой странице со значениями getEJMaps ("00056", 4) Я получаю следующие результаты:

00056399
00056717
00056721
00056722
00056900
...

Это именно то, что я хочу, но когда я связываю его с TextBox и набираю 00056, я получаю результаты:

56399
24015
24017
56717
56721
...

Который показывает две проблемы:

  1. Что, черт возьми, случилось с моими нулями? И как я могу вернуть их?
  2. Откуда взялись эти "240xx" числа? В документе xml нет даже таких значений!

Я полностью сбит с толку, пожалуйста, помогите мне:)

Ответы [ 2 ]

2 голосов
/ 04 февраля 2009

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

"00056399"
"00056717"
"00056721"
"00056722"
"00056900"
...

Не забывайте, что вам нужно экранировать кавычки с помощью \

Если это исправит пропущенные 0, но не значения фантома, дайте мне знать, и я постараюсь помочь с этим. Я думаю, что это будет все же.

1 голос
/ 29 ноября 2010
SELECT   
'''' + CustomerShipTo + '''' AS CustomerShipTo   

FROM dbo.CustomerMaster   

Это должно работать ..... У меня это сработало

...