2011-05-16 62 views
1

您好我正在爲客戶端構建一個Web應用程序,並使用一些獨特的控件和條件。一頁涉及一個由大約100個組合框和列表框組成的詳細搜索功能。我正在嘗試做的是做一個foreach(已經被改變/選擇的控件),並將它提供給一個函數來生成一個查詢。有100個,但用戶可能只使用三個特定的搜索?找到在asp.net中選擇的控件

我知道必須有辦法做到這一點。在此先感謝您的幫助

+0

調用這個也許你應該有複選框這使每一個標準,這樣,你就會知道,哪些是「使用」。 – 2011-05-16 00:51:46

回答

0

那麼你可以使用類似:

List<Control> list = new List<Control>(); 

public void ControlRecursive(Control Root) 
    { 
     if(typeof(ComboBox) == Root.GetType() && ((ComboBox)Root).Checked) 
      list.Add(Root); 
     else if (Root is RadListBox) 
     { 
      // deal with RadListBox here 
     } 
     // if all your other types 
     // ... 

     foreach (Control Ctl in Root.Controls) 
      ControlRecursive(Ctl); 
    } 

然後用ControlRecursive(form1);

+0

這正是我想要做的事情,我正在玩java數組的想法,但是我最好用java來做shakey。讓我問你一個問題。我正在使用Telerick RadListBox我似乎無法獲得typeof識別。它與一個正常的ASP控制,不建議? – 2011-05-16 15:25:43

+0

你應該問作爲一個單獨的問題,我不知道答案,除非說RadListBox可能繼承自ListBox類型,並且可以檢查它。 typeof()在自定義類上工作,所以我真的不知道爲什麼這不起作用。如果你需要它,那麼就開始另一個關於如何使用該控制語句的問題。很高興我可以幫助循環。 – 2011-05-16 18:18:49

+0

我最終使用移動到常規列表框,我想使用rad列表框的唯一原因是因爲您可以輕鬆地添加一個複選框,我覺得這是一個更友好的用戶界面。再次感謝您的幫助 – 2011-05-16 19:09:20

0

您可以爲每個控件都有一個與onchange/select關聯的javascript函數,然後將已選擇的項添加到javascript數組中。然後,您可以將該數組傳遞給您的查詢生成,以瞭解要搜索的變量。