如何在asp.net的列表框中获取所选值

时间:2011-09-13 20:24:36

标签: c# asp.net listbox

 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错误的防御

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;

这些是我正在使用的名称空间。

这就是我想要做的事情

 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)";
...
     }

我想将所有选定的用户添加到表格中。

它抛出的错误是System.Web.UI.WebControls不包含listboxmembers.selectedItems的defenition你是否缺少目录或程序集指令。为什么我无法使用selectedItems

3 个答案:

答案 0 :(得分: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()

答案 1 :(得分: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 

答案 2 :(得分:0)

你是在检索Postback而不是重新绑定吗?我敢打赌,因为你正在重新绑定,你正在吹走你选择的值。 foreach循环中的代码是正确的。