Как обновить ListView с помощью UpdatePanel (ASP.NET C #) - PullRequest
0 голосов
/ 09 октября 2018

У меня есть код ниже (упрощенный для тестирования):

<asp:TextBox ID="search_TB" runat="server" AutoPostBack="true" OnTextChanged="search_TB_TextChanged"></asp:TextBox>

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:UpdatePanel ID="up" runat="server">
        <Triggers><asp:AsyncPostBackTrigger ControlID="search_TB" /></Triggers>
        <ContentTemplate>
            <asp:ListView ID="lv" runat="server">
                <ItemTemplate>
                    <div class="text-danger"><%# Eval("name") %></div>
                </ItemTemplate>
            </asp:ListView>
        </ContentTemplate>
    </asp:UpdatePanel>

Я пытаюсь асинхронно обновлять ListView при изменении текста в TextBox.Я ищу, я пытаюсь очень долго, но нет хорошего источника.Не могли бы вы, ребята, помочь мне?

Что дальше?OnTextChanged ничего не делает, кроме полного обновления, если AutoPostBack имеет значение true:

protected void search_TB_TextChanged(object sender, EventArgs e)
    {
        List<Food> foods = SqlChannel.ListFood().Where(x => x.name.ToLower().Contains(search_TB.Text.ToLower())).ToList();
        lv.DataSource = foods;
        lv.DataBind();
    }
}

Я также не могу сделать асинхронную Page_Load:

if (!IsPostBack)
            {
                List<Food> foods = SqlChannel.ListFood().Where(x => x.name.ToLower().Contains(search_TB.Text.ToLower())).OrderBy(x => x.name).ToList();
                lv.DataSource = foods;
                lv.DataBind();
            }

Еще одна вещь: было бы здорово, если бы он обновлял ONKEYUPне только после того, как TextBox потеряет фокус или что-то в этом роде.

Заранее спасибо.

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