2011-11-13 25 views
0

私はEntityDataSourceを持つGridViewを持っています。ASP.NET QueryExtenderを使用した複数の文字列用の4 GridViewフィルタ

実行時に複数の文字列と比較することで、その行をQueryExtenderを使用してフィルタリングする必要があります。

すなわち、特定のフィールドは(「文字列1」、「string2の」はstring3' )は

誰かが答えの方に私を指すの場合にのみ行を返しますか?ありがとう。

編集:私はすでに、実行時にコントロールから読み取る、1つの文字列に対してこれを行う方法を知っています。しかし、私は達成しようとしていることを示しているものをGoogleで見つけることができません。

List<string> search = new List<string>(); 
      search.Add("string 1"); 
      search.Add("string 2"); 

      var query = from ex in YourEntities 
        where search.Contains(ex.Field) 
       select ex; 

queryあなたが探している項目があります:あなたは、あなたが探している文字列のリストを含むList<string>を定義し、その後のようなものを書くことができEnumerable<T>を持つ

答えて

0

UPDATE

私は、QueryExtenderコントロールに慣れていないですが、this MSDNチュートリアルでは、次の操作を行うことを示唆している:

は、QueryExtenderコントロールの開始タグと終了タグの間CustomExpressionFilterを追加します

<asp:CustomExpression OnQuerying="FilterByStrings"></asp:CustomExpression> 

あなたのコードでこのような方法を定義してください:

protected void FilterByStrings(object sender, CustomExpressionEventArgs e) 
{ 
    List<string> search = new List<string>(); 
       search.Add("string 1"); 
       search.Add("string 2"); 

    e.Query = from ex in e.Query.Cast<YourEntity>() 
       where search.Contains(ex.Field) 
       select ex; 
} 
+0

ありがとうございました。 私は現在、hiddenfieldの値から読み込んでいることを言及する必要があります。 は今、私が持っている: を:ControlParameter ControlID = "HiddenField1"> 私が代わりにコントロールの一覧から読み込む気にしません。しかし、そのリストの値をどのように含めるべきですか?これは –

+0

@colonel_px :-(非常に基本的な質問であれば を謝罪:私は、私はそれが参考に願っています更新を掲示し、私は前にQueryExtenderを使ったことがない – Icarus

+0

は、イカルスをありがとう 私はちょうど何かをしようとしていました。。。 。メソッド式を使用して、そのようなそれが動作するかどうか、私は知り一度更新します! –

関連する問題