如何获取多选DropDownList项?

时间:2018-01-26 07:10:46

标签: c# asp.net asp.net-web-api

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

  

"无法转换类型' FineUI.ListItem'至   ' Systm.Web.UI.WebControls.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>

2 个答案:

答案 0 :(得分:2)

在使用ListItem foreach (ListItem item in DropDownList1.SelectedItemArray)的循环中,C#处理ListItem作为来自Systm.Web.UI.WebControls的ListItem,但DropDownList1.SelectedItemArray是一个充满来自FineUI的ListItem的数组。

所以你有两个名为ListItem的类,而C#得到了#34;混淆了#34;。 你可以通过添加类的路径来稍微改变你的for循环来解决这个问题。

foreach (FineUI.ListItem item in DropDownList1.SelectedItemArray)

我查看了FineUI的文档,ListItems有你在循环中使用的Value和Text成员,因此不需要进一步的更改。

答案 1 :(得分:1)

您的问题是类型转换。您的控件已FineUI.ListItem,您正试图将它们转换为Systm.Web.UI.WebControls.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";
    }