仅显示使用 C# 的下拉列表复选框中的选定项



我有一个带有复选框的下拉列表,我只想显示所选项目,但我的问题是它为同一项目显示两次。 例如,如果我选择项目 #4 和 #7,它将像这样显示 4 4、7 7。 如何仅显示下拉列表中所选项目的唯一值?

string myList = string.Empty;
foreach (System.Web.UI.WebControls.ListItem item in facDDL.Items)
{
    if (item.Selected)
    {
         myList += item.Text + " " + item.Value + ",";
    }
}

这是因为您同时使用文本和值。

看看 https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listitem.value(v=vs.110(.aspx

通过将下拉列表的内容更改为:

<asp:DropDownList ID="UserSelectionDropDownControl" runat="server">
                <asp:ListItem Value="1">1</asp:ListItem>
                <asp:ListItem Value="2">2</asp:ListItem>
                <asp:ListItem Value="3">3</asp:ListItem>
                <asp:ListItem Value="4">Four</asp:ListItem>
                <asp:ListItem Value="5">Five</asp:ListItem>                
</asp:DropDownList>

在这种情况下,当选择列表项中的第四行时,您的字符串将是

四 4,

我的猜测是,您永远不会提供键值对作为列表项属性。

如果在 aspx 页上执行此操作

<asp:ListItem>Text</asp:ListItem>

键和值都是相同的。因此,您必须将其更改为

<asp:ListItem Text="Value" Value="3"></asp:ListItem>

如果要在代码隐藏中绑定数据,请确保指定键和值列。

DropDownList1.DataSource = mySource;
DropDownList1.DataTextField = "Text";
DropDownList1.DataValueField = "Value";
DropDownList1.DataBind();

或者从代码隐藏中一次添加一个时

DropDownList1.Items.Insert(0, new ListItem("Text", "Value", true));

我所做的只是替换这个

myList += item.Text + " " + item.Value + ",";

有了这个

 myList += "'" + item.Value + "', ";

它就像一个魅力。谢谢

相关内容

  • 没有找到相关文章

最新更新