2010-10-15 51 views
1

我正在使用GridView,並且我要求用戶能夠使用2個控件進行過濾。一個簡單的過濾行的類型 - 有一個名爲action的列,用戶在下拉框中從數據庫中選擇一個不同的值,並且gridview只在行爲列中顯示具有該值的行。在它自己這個作品完美。過濾器表達式無法正常工作

但我還添加了一個文本框,用戶可以在其中鍵入'itemID'或'parentID'的ID。即使使用先前的控件,這也能正常工作。

問題是,當文本框爲空(即顯示所有ID)時,下拉框不起作用。如果我選擇一個值並單擊提交,它就不會執行任何操作。現在,如果我通過ID進行篩選,然後從下拉框中選擇一個值,那麼效果很好。

這是我的過濾器表達式和數據源的參數:

 <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="cleared for privacy" 
     SelectCommand="SELECT * FROM [Audit] WHERE ([source] = @source)" FilterExpression="action like '{0}%' and (itemID like '{1}' or parentID like '{1}')"> 
     <SelectParameters> 
      <asp:Parameter DefaultValue="LOGISTICS" Name="source" Type="String" /> 
     </SelectParameters> 
     <FilterParameters> 
      <asp:ControlParameter Name="action" ControlID="DropDownList1" PropertyName="SelectedValue" /> 
      <asp:ControlParameter Name="legorinvid" ControlID="txtFilter" PropertyName="Text" /> 
     </FilterParameters> 
    </asp:SqlDataSource> 

回答

3

您需要FilterParameters設置的ControlParameterConvertEmptyStringToNull屬性false

這保證了gridview顯示所有數據時,所有的過濾文本框中

+0

沒有文字終於找到一個合適的答案!多謝,夥計! – sbs 2013-04-04 19:50:09

相關問題