2010-11-22 10 views
2

私はC#を使用しています。Cでのクエリ文字列を使用してリストボックスを選択する方法#

クエリ文字列に入ってくるデータからリストボックスの値を選択しようとしています。以下はコードです。

if (!string.IsNullOrEmpty(Security.GetString(Page.Request.Params["VT"]))) 
     {    
      string[] strCntVisit = Security.GetString(Page.Request.Params["VT"]).Split(','); 

      foreach (string i in strCntVisit) 
      { 
       lstContriesVisited1.SelectedValue = i; 

      }     
     } 

私の問題は、しかし、問題は私のリストボックスに(I)の私の最後の値は、クエリ文字列のすべての値ではない選択されていることで、上記のコードが完全に横断していることです。

お勧めします。

+0

あなたはすべてたいと言っていますリストボックスから選択した値? –

+0

何が元気?すべての値または選択した1つの値を指定します.Pls指定する – kbvishnu

+0

Page.Request.Params ["VT"]に存在するすべての値が最初のリストボックスで選択されます –

答えて

3

あなたListBoxMultipleに設定さSelectionMode性質を持っている場合は、あなたが行うことができます:

string vtParam = Security.GetString(Page.Request.Params["VT"]); 
if (!String.IsNullOrEmpty(vtParam)) {    
    string[] strCntVisit = vtParam.Split(','); 
    foreach (string i in strCntVisit) { 
     ListItem item = lstContriesVisited1.Items.FindByValue(i); 
     if (item != null) { 
      item.Selected = true; 
     } 
    }     
} 

EDIT:は以下のあなたのコメントに答える必要があります。

foreach(ListItem item in lstContriesVisited1.Items) { 
    lstContriesVisited2.Items.Add(item); 
} 
lstContriesVisited1.Items.Clear(); 
+0

もう1つの質問、今私が最初のlstContriesVisited1からすべてのアイテムを削除し、lstContriesVisited2リストボックスにそれらを追加するようにしたいと思っています。これに対して何が必要かを教えてください。 –

+0

@MKS、私の更新答えを見てください。 –

1

SelectedValueのは、単一の項目のみです。 ASP.NET ListControlを使用していると仮定すると、条件に一致する項目に対してSelectedプロパティを設定してみてください。

List<string> validItems = new List<string>(strCntVisit); 
foreach (ListItem i in lstContriesVisited1.Items) { 
    if (validItems.Contains(i.Text)) { 
     i.Selected = true; 
    } 
} 
0
string vt = Security.GetString(Page.Request.Params["VT"]); 
if (!string.IsNullOrEmpty(vt)) 
{ 
    string[] valuesToSelect = vt.Split(','); 
    foreach (ListItem li in lstContriesVisited1.Items) 
    { 
     li.Selected = Array.Contains(valuesToSelect, li.Value); 
    } 
} 

VTパラメータは、潜在的な値を多く含むことができれば、HashSet<T>に配列からvaluesToSelectを変更することが迅速であるかもしれない。)

関連する問題