如何使用UpdatePanel(ASP.NET C#)更新ListView

时间:2018-10-09 12:30:37

标签: c# asp.net ajax listview updatepanel

我有以下代码(经过简化以进行测试):

<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>

我试图在TextBox中更改文本时异步更新ListView。我正在搜索,我已经尝试了很长时间,但是没有很好的消息来源。你们能帮我吗?

下一步是什么?如果AutoPostBack为true,则OnTextChanged除了完全刷新以外什么都不做:

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();
            }

另一件事:如果不仅在TextBox失去焦点或诸如此类的东西之后刷新ONKEYUP,那将是很棒的事情。

谢谢。

0 个答案:

没有答案