首页 > 解决方案 > 如何选择字段作为过滤参数?

问题描述

当用户单击下拉列表时,用户可以在开始日期或到期日期之间进行选择,然后在文本框中输入日期。文本框过滤器正在工作,但我如何让下拉列表工作,以便用户可以在 start date 和 expiry date 之间进行选择

日期过滤器

我的 sqldatasource 中的部分FilterExpression= "'{0}' >= '{1}' AND '{0}' <= '{2}'">在我使用'{0}'.

当我这样做FilterExpression= "start_date >= '{1}' AND start_date <= '{2}'"> 或时它正在工作FilterExpression= "expiry_date >= '{1}' AND expiry_date <= '{2}'">

注意:start_dateexpiry_date是我在数据库中的表中的字段。

下拉列表:

<asp:DropDownList ID="Date_Type_DropDownList" runat="server" CssClass="custom-select dropdown-toggle ml-3" AutoPostBack="True">
      <asp:ListItem Text="Choose. . ." Value="-1"></asp:ListItem>
      <asp:ListItem Text="Start Date" Value="start_date"></asp:ListItem>
      <asp:ListItem Text="Expiry Date" Value="expiry_date"></asp:ListItem>
</asp:DropDownList>

SqlDataSource:

    <asp:SqlDataSource ID="Gridview_SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:databaseConnectionString %>" SelectCommand="SELECT * FROM table" FilterExpression= "'{0}' >= '{1}' AND '{0}' <= '{2}'">
        <FilterParameters>
            <asp:ControlParameter ControlID="Date_Type_DropDownList" Name="DateType" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="date_start_textbox" PropertyName="Text" DefaultValue="01/01/1900"/>
            <asp:ControlParameter ControlID="date_end_textbox" PropertyName="Text" DefaultValue="31/12/3000" />
        </FilterParameters>
</asp:SqlDataSource>

标签: c#asp.net

解决方案


推荐阅读