Asp.net 如何筛选5个参数,包括使用筛选表达式的下拉列表?
我试图用5个不同的参数过滤我的gridview。我可以让它正常工作,但当我将All添加到dropdownlist时,问题就出现了。如果我在dropdownlist中选择All,我将无法再进行筛选。它将显示所有内容的结果,但过滤不起作用。我的过滤器表达式或控制参数中是否有错误 这是我当前的下拉列表:Asp.net 如何筛选5个参数,包括使用筛选表达式的下拉列表?,asp.net,gridview,controlparameter,Asp.net,Gridview,Controlparameter,我试图用5个不同的参数过滤我的gridview。我可以让它正常工作,但当我将All添加到dropdownlist时,问题就出现了。如果我在dropdownlist中选择All,我将无法再进行筛选。它将显示所有内容的结果,但过滤不起作用。我的过滤器表达式或控制参数中是否有错误 这是我当前的下拉列表: <asp:DropDownList ID="DDL1" runat="server" AutoPostBack="true" DataTextField="Tab" DataValueFiel
<asp:DropDownList ID="DDL1" runat="server" AutoPostBack="true"
DataTextField="Tab" DataValueField="Tab" AppendDataBoundItems="true" >
<asp:ListItem Value="">All</asp:ListItem>
<asp:ListItem Value="Tr">Tr</asp:ListItem>
<asp:ListItem Value="Out">Out</asp:ListItem>
<asp:ListItem Value="In">In</asp:ListItem>
</asp:DropDownList>
这是我的筛选来源:
<asp:SqlDataSource
SelectCommand="SELECT * FROM Log ORDER BY TimeStamp DESC"
FilterExpression="Com LIKE '%{0}%' AND Usr LIKE '%{1}%'
AND Tab = '{2}' AND TimeStamp >= '#{3}#' AND TimeStamp <= '#{4}#'">
<FilterParameters>
<asp:ControlParameter ControlID="TB1" Name="Com" PropertyName="Text" Type="String"
ConvertEmptyStringToNull="false" />
<asp:ControlParameter ControlID="TB2" Name="Usr" PropertyName="Text" Type="String"
ConvertEmptyStringToNull="false" />
<asp:ControlParameter Name="Tab" ControlID="DDL1"
PropertyName="SelectedValue" ConvertEmptyStringToNull="true"/>
<asp:ControlParameter Name="Date" ControlID="DateFrom" Type="DateTime" PropertyName="Text"
ConvertEmptyStringToNull="false" />
<asp:ControlParameter Name="Date" ControlID="DateTo" Type="DateTime"
PropertyName="Text" ConvertEmptyStringToNull="false" />
</FilterParameters> </asp:SqlDataSource>
更新下拉列表中所有选项的值
<asp:ListItem Value="-1">All</asp:ListItem>
更新控制参数设置默认值并删除ConvertEmptyStringToFull=false
<asp:ControlParameter Name="Tab" ControlID="DDL1"
PropertyName="SelectedValue" Type="String" DefaultValue="-1"/>
更新选项卡的筛选器表达式
All向我显示,当您选择All时,SelectedValue为空,并且onvertEmptyStringToNull=true正在转换为NULL。当你有空的时候,我不认为它会作为一个字符串'NULL'工作,相反,它会搜索具有'NULL'值但不为NULL的记录。我也尝试过将它设为false,但它也不起作用。仍在试图找出我需要在代码中修改的内容
FilterExpression="Com LIKE '%{0}%' AND Usr LIKE '%{1}%'
AND (Tab = '{2}' or '{2}' = '-1') AND TimeStamp >= '#{3}#' AND TimeStamp <= '#{4}#'">