我使用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>
答案 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";
}