C# 如何获取多选下拉列表项?

C# 如何获取多选下拉列表项?,c#,asp.net,asp.net-web-api,C#,Asp.net,Asp.net Web Api,我使用FineUI DropDownList控件,该DropDownList是EnableMultiSelect。在“显示所选项目”按钮的单击事件中,我想显示所选项目信息。在我的代码中,显示了一个问题: 无法将类型'FineUI.ListItem'转换为 “Systm.Web.UI.WebControl.ListItem” 如何解决 按钮单击代码如下所示: protected void btnGetSelection_Click(object sender, EventArgs e) {

我使用FineUI DropDownList控件,该DropDownList是EnableMultiSelect。在“显示所选项目”按钮的单击事件中,我想显示所选项目信息。在我的代码中,显示了一个问题:

无法将类型'FineUI.ListItem'转换为 “Systm.Web.UI.WebControl.ListItem”

如何解决

按钮单击代码如下所示:

protected void btnGetSelection_Click(object sender, EventArgs e)
    { 
        string result="Selected informations:";
        if (DropDownList1.SelectedItem != null)
        {
            foreach (ListItem item in DropDownList1.SelectedItemArray)
            {
                result = result + item.Value;

            } 
            labResult.Text = result;
        }
        else
            labResult.Text = "No SelectedItem";
    }
页面源代码:

<FineUI:pagemanager ID="PageManager1" runat="server" />
<FineUI:simpleform ID="SimpleForm1" BodyPadding="5px" runat="server" Width="450px" EnableCollapse="true"
    ShowBorder="True" Title="Simple DropdownList(AutoPostBack)" ShowHeader="True">
    <Items>
        <FineUI:DropDownList ID="DropDownList1" EnableMultiSelect="true" EnableEdit="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="true" runat="server" Label="试验:">
        </FineUI:DropDownList>
        <FineUI:Button  runat ="server"  Text="Select[item6]" OnClick="btnSelectItem6_Click" CssClass="marginr" ></FineUI:Button>
        <FineUI:Button  Text="Show Selected Items" OnClick="btnGetSelection_Click" runat="server" ></FineUI:Button>
    </Items>
</FineUI:simpleform>
<FineUI:label runat="server" ID="labResult"></FineUI:label>

您的问题在于类型转换。您的控件具有
FineUI.ListItem
,您正试图将其转换为
Systm.Web.UI.WebControl.ListItem
。在foreach循环中,必须更正类型

protected void btnGetSelection_Click(object sender, EventArgs e)
    { 
        string result="Selected informations:";
        if (DropDownList1.SelectedItem != null)
        {
            foreach (FineUI.ListItem item in DropDownList1.SelectedItemArray)
            {
                result = result + item.Value;

            } 
            labResult.Text = result;
        }
        else
            labResult.Text = "No SelectedItem";
    }

在使用ListItem
foreach的循环中(DropDownList中的ListItem 1.SelectedItemArray)
C将
ListItem
处理为
Systm.Web.UI.WebControl
中的ListItem,但
DropDownList 1.SelectedItemArray
是一个数组,其中包含
FineUI
中的ListItems

因此,您有两个名为
ListItem
的类,而C#会“混淆”。 您可以通过添加类的路径稍微更改for循环来解决这个问题

foreach (FineUI.ListItem item in DropDownList1.SelectedItemArray)

我检查了FineUI的文档,ListItems具有您在循环中使用的值和文本成员,因此不需要进一步更改。

我知道了。谢谢你的帮助!谢谢你的帮助!我用你的方法解决了这个问题。谢谢你帮我编辑这个问题!