首页 文章

如何从asp.net中列表框的选定项目中删除

提问于
浏览
0

我有一个包含6个项目的列表框 . 在seleceted index中,标签列表框文本的更改事件被更改为所选项目值 . 列表框的选择模式是多个 . 我想当用户选择一个项目时,它应该从列表框中删除并添加到标签文本中 . 用户可以删除所选项目1 2或所有我没有使用文本框,因为我只想选择列表框项目 . 我的HTML是

<asp:Label ID="lbl_mar_cat" runat="server" Width="100%" Font-Size="Small"></asp:Label>
<asp:ListBox ID="listbox_mar" runat="server" SelectionMode="Multiple" 
    CssClass="listbox" AutoPostBack="True" 
    onselectedindexchanged="BulletedList1_SelectedIndexChanged" >
    <asp:ListItem Value="Doesn't Matter">Doesn't Matter</asp:ListItem>
    <asp:ListItem>1</asp:ListItem>
    <asp:ListItem>2</asp:ListItem>
    <asp:ListItem>3</asp:ListItem>
    <asp:ListItem>Divorced</asp:ListItem>
</asp:ListBox>

我的服务器端代码是

if (listbox_mar.SelectedValue == "Doesn't Matter")
    {
        lbl_mar_cat.Text = "Doesn't Matter";
    }
    else
    {
        if (lbl_mar_cat.Text == "")
        {
            lbl_mar_cat.Text = listbox_mar.SelectedValue.ToString();
        }
        else
        {
            lbl_mar_cat.Text += ", " + listbox_mar.SelectedValue.ToString();
        }
    }

1 回答

  • 1

    试试这个:

    protected void listbox_mar_SelectedIndexChanged(object sender, EventArgs e)
    {
        for (int i = 0; i < listbox_mar.Items.Count; i++)
        {
            if (listbox_mar.Items[i].Selected)
            {
                lbl_mar_cat.Text += listbox_mar.Items[i].Text+ " , " ;
                listbox_mar.Items.Remove(listbox_mar.Items[i]);
            }
        }       
    }
    

相关问题