【问题标题】:why i lost filtered results after change datapager index为什么我在更改 datapager 索引后丢失了过滤结果
【发布时间】:2020-12-13 06:02:45
【问题描述】:

查看 Gif 并查看问题,当我在文本框中输入并搜索时,我单击其他页面后搜索结果很好,搜索条件丢失

【问题讨论】:

  • 请添加一些代码让我们帮助您。

标签: c# asp.net updatepanel postback


【解决方案1】:
<head runat="server">
<title></title>
<link href="App_Themes/Theme1/CSS/Usual.css" rel="stylesheet" />
<link href="Table.css" rel="stylesheet" />
<style>
    body
    {
        font-family: Poppins !important
    }

    input
    {
        font: unset !important
    }
</style>
<script>
    function UpdatePanel() {
        __doPostBack("<%=TextBox1.ClientID%>", '')
    }
</script>
<link href="App_Themes/Theme1/CSS/Bootstrap.css" rel="stylesheet" />
与身体
<body>
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <div class="table-b">
        <div class="row d-flex justify-content-center">
            <div class="col-md-6">
                <div class="tables">
                    <div class="table-search">
                        <asp:TextBox AutoCompleteType="None" ID="TextBox1" onkeyup="UpdatePanel()" AutoPostBack="false" OnTextChanged="TextBox1_TextChanged" CssClass="key" runat="server" placeholder="Search"></asp:TextBox>
                        <div class="line-1"></div>
                        <div class="line-0"></div>
                    </div>
                    <asp:UpdatePanel ID="UpdatePanel1" RenderMode="Block" UpdateMode="Conditional" runat="server">
                        <ContentTemplate>
                            <asp:ListView  ID="ListView1" runat="server" DataSourceID="SqlDataSource1" DataKeyNames="product_id">
                                <ItemTemplate>
                                    <tr style="">
                                        <td>
                                            <asp:Label Text='<%# Eval("product_id") %>' runat="server" ID="product_idLabel" />
                                        </td>
                                        <td>
                                            <asp:Label Text='<%# Eval("product_name") %>' runat="server" ID="product_nameLabel" />
                                        </td>

                                        <td>
                                            <asp:Label Text='<%# Convert.ToInt32(Eval("list_price")).ToString("N0") %>' runat="server" ID="list_priceLabel" />
                                        </td>
                                    </tr>
                                </ItemTemplate>
                                <LayoutTemplate>
                                    <table runat="server" style="width: 100%; text-align: right">
                                        <tr runat="server" class="thead">
                                            <th runat="server">id</th>
                                            <th runat="server">name</th>
                                            <th runat="server">price</th>
                                        </tr>
                                        <tr runat="server" id="itemPlaceholder"></tr>
                                        <tr runat="server">
                                            <td runat="server" style="">
                                                <asp:DataPager runat="server" ID="DataPager1">
                                                    <Fields>
                                                        <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False"></asp:NextPreviousPagerField>
                                                        <asp:NumericPagerField></asp:NumericPagerField>
                                                        <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False"></asp:NextPreviousPagerField>
                                                    </Fields>
                                                </asp:DataPager>
                                            </td>
                                        </tr>
                                    </table>
                                </LayoutTemplate>
                            </asp:ListView>
                            <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString='<%$ ConnectionStrings:ProductConnectionString %>' SelectCommand="SELECT product_name, product_id, list_price FROM production.products"></asp:SqlDataSource>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
                        </Triggers>
                    </asp:UpdatePanel>
                </div>
            </div>
        </div>
    </div>

</form>

这是后面的代码

 protected void TextBox1_TextChanged(object sender, EventArgs e)
{
    SqlDataSource1.SelectCommand = "SELECT product_name, product_id, list_price FROM production.products where product_name like '%" + TextBox1.Text + "%'";
    SqlDataSource1.DataBind();
    ListView1.DataBind();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2021-11-22
    相关资源
    最近更新 更多