C# 如何在asp.net的列表框中获取选定值

C# 如何在asp.net的列表框中获取选定值,c#,asp.net,listbox,C#,Asp.net,Listbox,这些是我正在使用的名称空间 这就是我想做的 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.WebContr

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

这就是我想做的

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
我想将所有选定的用户添加到表中


它引发的错误是System.Web.UI.WebControl不包含listboxmembers的防御。selectedItems是否缺少目录或程序集指令。为什么我不能使用selectedItems

您是否正在检查回发,并且在回发时没有重新绑定?我敢打赌,你正在吹走你选择的值,因为你正在重新绑定。foreach循环中的代码是正确的。

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

countSelected=ListBoxMembers.Items.Cast()。其中(i=>i.Selected.Count();
 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)";
...
     }
如果您试图获取所有选定项目,则可以执行以下操作:

countSelected  =  ListBoxMembers.Items.Cast<ListItem>().Where(i => i.Selected).Count();
var selectedNames=ListBoxMembers.Items.Cast()
.其中(i=>i.Selected)
.选择(i=>i.Value)
托利斯先生()
countSelected=ListBoxMembers.Items.Cast().Where(i=>i.Selected.Count();
如果您试图获取所有选定项目,则可以执行以下操作:

countSelected  =  ListBoxMembers.Items.Cast<ListItem>().Where(i => i.Selected).Count();
var selectedNames=ListBoxMembers.Items.Cast()
.其中(i=>i.Selected)
.选择(i=>i.Value)
托利斯先生()
List selectedFirstNames=新列表();
foreach(ListBoxMembers.Items中的ListItem项)
{
如果(选定项)
{
选择名字。添加(项。值);
}
}  
//selectedFirstNames具有您选择的名字列表
List selectedFirstNames=新列表();
foreach(ListBoxMembers.Items中的ListItem项)
{
如果(选定项)
{
选择名字。添加(项。值);
}
}  
//selectedFirstNames具有您选择的名字列表

这可能会导致SelectedItems集合为空,但不会导致错误,说明未定义属性。。。会吗?这可能会导致SelectedItems集合为空,但不会导致错误,说明未定义属性。。。是吗?它抛出的错误是System.Web.UI.WebControl不包含listboxmembers的防御。selectedItems是否缺少目录或程序集指令。为什么我不能使用selectedItems@Mano我看到您在问题中使用了SelectedItems,并假设它是Winforms。我现在已经编辑了asp.net的答案。谢谢bala,但我需要将每个名称传递给这个int userID=Convert.ToInt32(server.performQuery(GUserIDQueryText,firstName,MySqlDbType.VarChar));因此,它将firstname和ID写入表中,如何从list@Mano循环通过selectedNames
foreach(selectedNames中的var firstName){…}
,已完全丢失。它引发的错误是System.Web.UI.WebControl不包含listboxmembers的防御。selectedItems是否缺少目录或程序集指令。为什么我不能使用selectedItems@Mano我看到您在问题中使用了SelectedItems,并假设它是Winforms。我现在已经编辑了asp.net的答案。谢谢bala,但我需要将每个名称传递给这个int userID=Convert.ToInt32(server.performQuery(GUserIDQueryText,firstName,MySqlDbType.VarChar));因此,它将firstname和ID写入表中,如何从list@Mano循环通过selectedNames
foreach(selectedNames中的var firstName){…}
感谢bala,它完全丢失了。如果它是一个列表框,也许你应该试试,LstBoxMembers.SelectedItem或ListBoxMember.Items[ListBoxMember.SelectedItem]@Cody:如果它是一个多选框(听起来很像),
SelectedItem
Items[SelectedIndex]
只会返回第一个选中的项目。如果它是一个列表框,也许你应该试试,LstBoxMembers.selectedItems或ListBoxMember.Items[ListBoxMember.SelectedItem]。@Cody:如果它是一个多选框(听起来像是这样),
SelectedItem
Items[SelectedIndex]
只会返回第一个选中的项目。
var selectedNames = ListBoxMembers.Items.Cast<ListItem>()
                                  .Where(i => i.Selected)
                                  .Select(i => i.Value)
                                  .ToList()
 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