2011-09-13 20 views
0
foreach (ListItem item in ListBoxMembers.Items) 
{ 
    if (item.Selected) 
    { 
     countSelected += 1; 
    } 

} 
for (int counter = 0; counter < countSelected; counter++) 
{ 
    string firstName = ListBoxMembers.SelectedItems[counter].Value; 
} 

これは選択された値を返していません。どこが間違っていますか? それがスローエラーが System.Web.UI.WebControlsこれらは私が使用しています名前空間であるlistboxmembers.selectedItemsエラーasp.netのリストボックスで選択した値を取得する方法

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using MySql.Data.MySqlClient; 
using MySql.Data; 
using System.Web.Security; 
using System.Data; 
using System.Web.UI.WebControls; 

ためdefenitionが含まれていませんです。

これは私がテーブルに選択したすべてのユーザーを追加したい

for (int counter = 0; counter < countSelected; counter++) 
      { 

     //To get User ID 
      string firstName=ListBoxMembers.SelectedItems[counter].Value; 

      // string firstName = ListBoxMembers.Items[counter].Value; 
      string GUserIDQueryText = "SELECT UserID FROM tbl_user WHERE FirstName "; 
      int userID = Convert.ToInt32(server.performQuery(GUserIDQueryText, firstName, MySqlDbType.VarChar)); 

      //Insert into tbl_userGroups 
      string insertIDText = "INSERT INTO tbl_usergroups 

(tbl_group_GroupID,tbl_user_UserID) VALUES(@tbl_group_GroupID,@tbl_user_UserID)"; 
... 
    } 

をやろうとしていますものです。

throwするエラーはSystem.Web.UI.WebControlsにはlistboxmembers.selectedItemsのdefenitionが含まれていません。ディレクトリまたはアセンブリディレクティブがありません。なぜselectedItemsを使用できないのですか

+0

を行うことができます多分あなたは試してみてください、LstBoxMembers.SelectedItemまたはListBoxMember.Items [ListBoxMember.SelectedItem] 。 – Burimi

+1

@Cody:複数の選択ボックス(そのように見える)の場合、 'SelectedItem'と' Items [SelectedIndex] 'は選択された最初のアイテムだけを返します。 – cHao

+0

ありがとうございます。 – Mano

答えて

5
countSelected = ListBoxMembers.Items.Cast<ListItem>().Where(i => i.Selected).Count(); 

それはリストボックスだ場合は、選択したすべての項目を取得しようとしている場合、あなたは

var selectedNames = ListBoxMembers.Items.Cast<ListItem>() 
            .Where(i => i.Selected) 
            .Select(i => i.Value) 
            .ToList() 
+0

throwするエラーはSystem.Web.UI.WebControlsにはlistboxmembers.selectedItemsのdefenitionが含まれていません。ディレクトリまたはアセンブリディレクティブがありません。なぜ私はselectedItemsを使用することができません – Mano

+0

@Manoあなたがあなたの質問でSelectedItemsを使用し、それがWinformsであると仮定したのを見ました。私は今asp.netのための私の答えを編集しました。 –

+0

ありがとうございます。しかし、この名前に渡すために各名前が必要です。userID = Convert.ToInt32(server.performQuery(GUserIDQueryText、firstName、MySqlDbType.VarChar));それはテーブルにファーストネームとIDを書き込みます。リストから名前にアクセスするにはどうすればいいですか? – Mano

0

ポストバックをチェックしていて、ポストバック時に再バインドしていませんか?あなたが選択した値を吹き飛ばしているのは、あなたが再結合しているからです。 foreachループのコードは正しいです。

+1

これは、SelectedItemsコレクションが空になる可能性がありますが、プロパティが定義されていないというエラーにはなりません。 –

1
List<string> selectedFirstNames = new List<string>(); 
foreach (ListItem item in ListBoxMembers.Items) 
{ 
    if (item.Selected) 
    { 
     selectedFirstNames.Add(item.Value); 
    } 

} 

//selectedFirstNames has your list of selected first names 
関連する問題