Автозаполнение в WebService с использованием LINQ - PullRequest
3 голосов
/ 30 марта 2011

Я использую автозаполнение через веб-сервис. И в моем веб-сервисе я использую LDS.

Проблема в том, что когда я пытаюсь этот код:

Это мой код пользовательского интерфейса, который вызывает веб-сервис в Default.aspx:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    <Services>
    <asp:ServiceReference Path ="WebService1.asmx" />
    </Services>
    </asp:ToolkitScriptManager> 

    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

    <asp:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender" runat="server" 
        DelimiterCharacters="" Enabled="True" ServicePath ="WebService1.asmx" ServiceMethod="ReturnEntity" EnableCaching="true"  TargetControlID="TextBox1" CompletionSetCount ="1">
    </asp:AutoCompleteExtender>

Это мой файл WebService (webservice1.asmx)

 [WebMethod]
    public string[] ReturnEntity(string prefixText, int count)
    {
        List<string> responses = new List<string>();
        for (int i = 0; i < count; i++)
            responses.Add(prefixText + (char)(i + 65));

        return responses.ToArray();
    }

Тогда это работает. Тем не менее, я работаю над этим кодом, и он не работает ...

 [WebMethod]
    public string[] ReturnEntity(string prefixText)
    {
        using (DataClasses1DataContext search = new DataClasses1DataContext())
        {
            string[] fullText = (from n in search.Entities
                                 where n.Name.StartsWith(prefixText)
                                 select n.Name).ToArray();

            return fullText;
        }

    }

Когда я пытаюсь запустить веб-сервис в самом браузере и передать некоторые параметры, он показывает мне следующее:

  <?xml version="1.0" encoding="utf-8" ?> 
- <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://tempuri.org/">
  <string>Starr</string> 
  <string>Sally Jeans</string> 
  <string>Steven Kline</string> 
  <string>Steven Goldberg</string> 
  </ArrayOfString>

Это не возвращает никаких результатов. Я просто хочу показать списки из моей таблицы, которая является сущностями, а имя столбца - «Имя».

Не могу понять: (

1 Ответ

1 голос
/ 30 марта 2011

Попробуйте использовать Начинается с и передайте Сравнение строк

var result = from n in search.Entities
             where n.Name.StartsWith(prefixText, 
                 StringComparison.InvariantCultureIgnoreCase)
             select n.Name;

return result.ToArray();

Если это все еще в контексте вызова, вы можете использовать ToLower ()

var result = from n in search.Entities
             where n.Name.ToLower().StartsWith(prefixText.ToLower())
             select n.Name;

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