【问题标题】:How to hide/show a drop down list item based on certain condition?如何根据特定条件隐藏/显示下拉列表项?
【发布时间】:2018-03-02 21:09:30
【问题描述】:

这是我的下拉前端代码:

<asp:DropDownList ID="ddlSearch" runat="server" CssClass="form-control">
    <asp:ListItem Value="1" Text="Ref No" />
    <asp:ListItem Value="2" Text="Name" />
    <asp:ListItem Value="3" Text="contact" />
</asp:DropDownList>

【问题讨论】:

  • 您是否尝试这样做,以便在例如勾选复选框或满足任何条件时出现下拉菜单?

标签: c# html webforms


【解决方案1】:

您可以在ddlSearch.Items 上使用.FindByValue.FindByText 方法获取该项目。然后将项目的 .Enabled 属性设置为 false 会将其隐藏在 UI 上。

因此,例如,如果您需要隐藏值为“1”的项目,您可以这样做:

ddlSearch.Items.FindByValue("1").Enabled = false;

请注意,在生产代码中,您可能希望在 FindByValue 之后进行空值检查,但为简单起见,我省略了它。例如,以下是检查空值的方法:

var listitem = ddlSearch.Items.FindByValue("1");
if (listitem != null) 
{
    listitem.Enabled = false;
}
else 
{
    // Throw an exception or display an error that the list item wasn't found.
}

【讨论】:

  • 感谢您的回答,我尝试了这种方法,但无法得到预期的结果。
  • 那么到底发生了什么?你还能在 UI 上看到该项目吗?
  • 是的,这些项目仍然可见。这是什么意思,我无法得到''请注意,在生产代码中,您希望在 FindByValue 之后进行 null 检查,但为简单起见,我省略了它。''
  • 我不知道为什么它不起作用。可以添加相关代码吗?关于空值检查,如果没有匹配的列表项,FindByValue 将返回空值。所以你应该在设置Enabled = false之前检查null。
  • if(rbtnModule == 1) { ddlSearch.Items.FindByValue("5").Enabled = false; }
猜你喜欢
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 2014-09-15
  • 2011-10-23
  • 2013-07-02
  • 1970-01-01
  • 2018-04-16
相关资源
最近更新 更多