我有两个相关的DropDownList
控件。根据父DropDownList
中的选择,我想隐藏子DropDownList
中的一些项目,以防它们与父DropDownList
中的所选项目无关。
我正在尝试以下方面:
foreach(ListItem item in ddlChildren.Items)
{
item.Visible = /* some logic here */
}
但是Visible
属性似乎不在此处。
有人可以建议我如何实现此功能吗?
答案 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服务方法的结果动态填充列表项。