2011-09-13 10 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

을 수행 할 수 있습니다 . – Burimi

+1

@Cody : 다중 선택 상자 (있는 것처럼 들린다) 인 경우,'SelectedItem'과'Items [SelectedIndex]'는 선택된 첫 번째 항목 만 반환합니다. – cHao

+0

감사합니다. – Mano

답변

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

선택한 모든 항목을 얻으려고 노력하는 경우는, 목록 상자, 어쩌면 당신이 시도해야 LstBoxMembers.SelectedItem 또는 ListBoxMember.Items [ListBoxMember.SelectedItem]의 경우

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

감사합니다 bala,하지만이 이름으로 전달할 각 이름이 필요합니다. userID = Convert.ToInt32 (server.performQuery (GUserIDQueryText, firstName, MySqlDbType.VarChar)); 그래서 테이블에 firstname과 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 
관련 문제