在asp.net中存储多个列表框项的选定值

时间:2010-11-08 12:03:11

标签: c# asp.net

我有一个绑定到数据源的列表框控件数据,我希望能够获取每个所选项的值,以便我可以使用该信息为另一个表形成插入查询。换句话说,能够从返回的列表中选择一些项目并获得每个项目的选定值。我尝试在每个声明中使用a,但想出了一些奇怪的数字。

2 个答案:

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

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