Я использую 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
...
Который показывает две проблемы:
- Что, черт возьми, случилось с моими нулями? И как я могу вернуть их?
- Откуда взялись эти "240xx" числа? В документе xml нет даже таких значений!
Я полностью сбит с толку, пожалуйста, помогите мне:)