【问题标题】:asp SqlDataSource Filter Expression; multiple Search Boxesasp SqlDataSource 过滤表达式;多个搜索框
【发布时间】:2011-06-21 18:22:07
【问题描述】:

我正在尝试对asp:GridView 中的单列数据执行单次搜索,但是我希望每列上方有多个过滤器(搜索)框,以便可以在其自己的透视列中进行搜索。理论上可以明确解决这个问题的是拥有多个FilterExpressions。我正在使用 VB,而且很新,很容易对 VB 产生误解,请注意:

PS。当只有一个过滤器(搜索)框时,我已经让它工作没有问题,这目前没有任何作用

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="xxx" 
    ProviderName="xxxx" 
    SelectCommand="SELECT [ddiID], [volusionID], [Customer], [email], [Total], [SumOfTotal] FROM [BBnewsalesQry] ORDER BY [Customer]"
    FilterExpression="customer like '%{0}%' OR ddiID like '%{0}%'">
      <FilterParameters>
         <asp:ControlParameter Name="ddiID" ControlID="ddiIDSearch" PropertyName="Text" />
         <asp:ControlParameter Name="customer" ControlID="txtSearch" PropertyName="Text" />
      </FilterParameters>
</asp:SqlDataSource>
<div>
   <b>DDI Search:</b> <asp:TextBox ID="ddiIDSearch" runat="server" />
   <b>Customer Search:</b> <asp:TextBox ID="txtSearch" runat="server" />
   <asp:ImageButton ID="btnSearch" ImageUrl="http:xxx" runat="server" />
   <asp:ImageButton ID="btnClear" ImageUrl="http:xxx" runat="server" />
</div>

然后在GridView里面:

<asp:TemplateField HeaderText="ddiID" SortExpression="ddiID">
        <ItemStyle HorizontalAlign="Left" />
           <ItemTemplate>
              <asp:Label ID="lblddiid" Text='<%#HighlightText(Eval("ddiid")) %>' 
                        CssClass="TextField" runat="server" />
           </ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="volusionID" HeaderText="volusionID" ReadOnly="True" SortExpression="volusionID" />
<asp:TemplateField HeaderText="customer" SortExpression="customer">
         <ItemStyle HorizontalAlign="Left" />
           <ItemTemplate>
              <asp:Label ID="lblcustomer" Text='<%#HighlightText(Eval("customer")) %>' 
                        CssClass="TextField" runat="server" />
           </ItemTemplate>
</asp:TemplateField>

【问题讨论】:

    标签: asp.net gridview sqldatasource


    【解决方案1】:

    您两次引用相同的参数 - 请尝试以下操作:

    FilterExpression="customer like '%{0}%' OR ddiID like '%{1}%'"
    

    【讨论】:

      【解决方案2】:

      我已经解决了在“Where”语句中创建两个或多个“Like 子句”的问题:

      Where CHARINDEX(@Par1, Col1)<>0) and ...
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-30
        • 2015-12-13
        • 1970-01-01
        • 2011-06-21
        • 1970-01-01
        • 1970-01-01
        • 2018-08-24
        相关资源
        最近更新 更多