2010-11-27 10 views
2

私はリストをバインドしたGridViewを持っています - 複数のCheckBoxListsに基づいてデータのフィルタを許可したいと考えています。引数の便宜上WebForms Listboxに値を渡す<T>

のは、私がジョブのリストを持っている、と私はコードでジョブをフィルタしたいとしましょう - だから私は

  • C#
  • ASP.NET
  • PHPなどのCheckBoxListのを持っているでしょう
  • F#
  • など。

誰かが複数のCを選択した場合どのようにリストに値を渡してGridViewに再バインドするのですか?値を配列として渡す方法はありますか?またはカンマ区切りの文字列ですか?

どれ例は(私はC#の男の子です)いただければ幸いです、と私はそれを正しく説明している願っています:S

+0

(例linq2sqlを使用して)のような何かを行うことができ、それは/ Webアプリケーションおよび使用している.NETのバージョンに勝つのですか? – TalentTuner

+0

申し訳ありませんがwebforms、.NET 4 C#.. Webフォームのコード例はありますか – leen3o

答えて

0

ObservableCollection<T>を使用しています。自動的にグリッドビュー "observe"に、基礎となるデータソースが変更されて更新されるようにします。

+0

ヒントはありがとうございますが、実際の質問にはお答えできませんか? – leen3o

0

私はあなたの質問を完全に理解しているかどうかはわかりません。しかし、私は、多くの場合、オブジェクトにLINQを経由して、フォームの照会可能にリストアイテムを取得するには、次の操作を行います。あなたはGridViewのためのあなたのフィルタリングを行うどこ

var items = cblLanguages.Items.Cast<ListItem>(); 

// Selected Items 
var selectedItems = items.Where(li => li.Selected); 

// Item's containing 'C' 
var itemsWithC = items.Where(li => li.Text.Contains("C")); 

// Values between 2 and 5 
var itemsBetween2And5 = from li in items 
         let v = Convert.ToInt32(li.Value) 
         where 2 <= v && v <= 5 
         select li; 
0

はあなたがフィルタリングする前に、手動でリストを構築する必要があります。あなたはフィルタリング時に

var languages = new List<string>(); 
foreach (ListItem item in cblLanguages.Items) 
{ 
    if (item.Selected) 
    { 
     languages.Add(item.Value); 
    } 
} 

あなたは

var jobs = db.Jobs.Where(x => langauges.Contains(x.LanguageCode)); 
gvJobs.DataSource = jobs; 
gvJobs.DataBind(); 
関連する問題