2011-01-24 4 views
0

私はチェックされた項目の値を抽出し、データベースに保存したチェックリストボックスを持っています。今、私がフォームに戻ってきたとき、私はListとして値[id]しか持っていません。今私はintのこのリストからそれらの選択された値を表示したいと思います。以下のコードのLINQ/LAMBDA式

私はあなたには明白だと思います。

は、[更新]

こんにちは、私は以下のコードを使用して、私の問題を解決しました。しかし、私は、これよりも最適化されたソリューションがあることを知りたいと思っています。不必要に反復するとき

private void ProcessRequest() 
     { 
      if (Session["DeniedReason"] != null) 
      { 
       List<int> deniedList = (List<int>)Session["DeniedReason"]; 
       if(deniedList!=null) 
       { 
        if(deniedList.Count>0) 
        { 
         foreach (int deniedValue in deniedList) 
         { 
          foreach (ListItem item in cblDeniedList.Items) 
          { 
           if (string.Compare(item.Value,deniedValue.ToString())==0) 
           { 
            item.Selected = true; 
           } 
          } 
         } 

        } 
       } 
      } 
     } 

もしあれば、LINQ /ラムダ式は良いでしょう。

答えて

2
List<int> deniedList = (List<int>)Session["DeniedReason"]; 
foreach (ListItem li in cblDeniedList.Items) 
{ 
    li.Selected = deniedList.Contains(Convert.ToInt32(li.Value)); 
} 
+0

を助けCheckBoxList1.Items.FindByText方法 希望を使用して...私は別の質問にこの答えを投稿しました。舞台裏で奇妙なことが起こっている。 – lukiffer

+0

いいえ、同じ質問...私は質問を編集しました –

+0

私は同じが必要です、そして、それを持っています...ありがとうlukiffer –

1
<asp:checkboxlist id="CheckBoxList1" runat="server" 
     DataTextField="interest" DataValueField="1" /> 
Use DatavalueFild property(i think it's your id) 
ListItem myListItem = CheckBoxList1.Items.FindByValue("sports"); 
currentCheckBox.Selected = true; 

か、これはあなたのために:-) それの答えに非更新質問奇妙