如何使下拉列表列表项不可见

时间:2011-05-02 21:32:35

标签: asp.net drop-down-menu

我有两个相关的DropDownList控件。根据父DropDownList中的选择,我想隐藏子DropDownList中的一些项目,以防它们与父DropDownList中的所选项目无关。

我正在尝试以下方面:

foreach(ListItem item in ddlChildren.Items)
{
     item.Visible = /* some logic here */
}

但是Visible属性似乎不在此处。

有人可以建议我如何实现此功能吗?

4 个答案:

答案 0 :(得分:1)

你不能'隐藏'价值观。您需要从头开始重新绑定或重新填充列表。

可选择如果你只想删除特定的那些,你可以删除或添加,但这通常比重建列表更多的工作。

答案 1 :(得分:1)

我设法通过使用我想隐藏的项目的Enabled属性并将其设置为false来做类似的事情。如果设置为false,则该项目不可见。

答案 2 :(得分:1)

我在Web应用程序中遇到了类似的问题。我使用以下内容来隐藏下拉列表中的特定项目,使用我想要隐藏的项目的索引上的enable属性。该项目不会像在Windows应用程序上那样变灰。它实际上是隐藏的。请注意我的原始代码是在VB中。我在下面转换了一个c#版本。 Jean-Francois正在谈论上述相同的解决方案。

this.ddlYourDropDown.Items(3).Enabled == false;

以下是使用特定项目值的解决方案......

this.ddlYourDropDown.Items.FindByValue(“YourItemValue”)。Enabled == false

答案 3 :(得分:0)

对于这种情况,我通常使用AjaxControlToolkit中的级联下拉扩展程序。

请在此处查看:http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/CascadingDropDown/CascadingDropDown.aspx

项目主页:http://ajaxcontroltoolkit.codeplex.com/

请注意,此方法不会更改列表项的可见性,但会根据Web服务方法的结果动态填充列表项。