2010-11-08 101 views
0

我有一个列表框控件数据绑定到数据源,我希望能够获取每个选定项的值,以便我可以使用该信息来形成一个为另一个表插入查询。换句话说,能够从返回的列表中选择几个项目并获取每个项目的选定值。我试着用每一个陈述,但想出了一些奇怪的数字。在asp.net中存储多个列表框项的选定值

+0

您可以添加代码您目前正在使用和详细解释您获得的结果以及您期望的结果。 – 2010-11-08 12:08:29

+0

我只知道如何获得一个选定的值:listbox1.selectedvalue。我的列表框被连接到一个sqldatasource,我需要获取每个项目的选定值(不是文本,但值),以便我可以创建一个存储过程,将选定的值插入到另一个表中。例如,我的表格会为每个车型/型号返回子模型。我正在构建一个应用程序,允许我选择年/制作/模型,但从一长串子模型中选择多个项目,并将它们分配给每个模型,以供我选择的特定年份中的每个模型使用。 – 2010-11-08 20:52:44

回答

1

我终于想通了

protected void Button1_Click(object sender, EventArgs e) 
{ 
    string msg = ""; 

    foreach (ListItem li in ListBox_SubModel.Items) 
    { 
     if (li.Selected == true) 
     { 
      msg += "<br />" + li.Value + " is selected"; 
     } 
    } 
    Label_SubModel.Text = msg; 
} 
2

这里有一个列表框允许选择多个项目,以检索所选项目的按钮的例子:

<%@ Page Title="Home Page" Language="C#" %> 
<script type="text/C#" runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      list.DataSource = Enumerable.Range(1, 5).Select(x => new { Id = x, Text = "item " + x }); 
      list.DataValueField = "Id"; 
      list.DataTextField = "Text"; 
      list.DataBind(); 
     } 
    } 

    protected void BtnOK_Click(object sender, EventArgs e) 
    { 
     ListItem[] selectedItems = list.Items 
      .Cast<ListItem>() 
      .Where(item => item.Selected) 
      .ToArray(); 
     // TODO: use the selected items here 
    } 
</script> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head id="Head1" runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="Form1" runat="server"> 
     <asp:ListBox ID="list" runat="server" SelectionMode="Multiple" /> 
     <asp:LinkButton ID="BtnOK" runat="server" OnClick="BtnOK_Click" Text="OK" /> 
    </form> 
</body> 
</html> 
相关问题