在c#下拉列表中绑定但不显示项目

时间:2012-10-10 15:22:10

标签: c# asp.net drop-down-menu

我在这里有一个问题。

我想在c#中使用以下值绑定下拉列表

value    text
-----    ----
1         abc
2         pqr
3         xyz
4         ppp

但是我想只显示与1,2和3相关的项目。

是否可以绑定所有值,但不显示所有项

5 个答案:

答案 0 :(得分:0)

您可以尝试为最后一个ListItem对象设置Enabled = false。我的建议可能是甚至不在你绑定的项目列表中包含ListItem。

答案 1 :(得分:0)

试试这个

list.DataSource = myDataSource;
list.DataBind();

list.Items.Remove(list.Items.FindByText("ppp"));

OR

list.Items.Remove(list.Items.FindByValue("4"));

答案 2 :(得分:0)

您可以从DropDownList中删除

ListItem itemToRemove = myDropDown.Items.FindByValue("4");
if (itemToRemove != null)
{
    myDropDown.Items.Remove(itemToRemove);
}

答案 3 :(得分:0)

是的,你可以。

DataTemplate中,只需将对象的可见性绑定到...您的条件(似乎是索引?)并在转换器中包含显示/隐藏逻辑。

编辑这样的事情:

<DataTemplate>
  <ContentPresenter Visibility="{Binding Index, Converter={StaticRessource IndexTovisibilityConverter}}>
    // Here your datatemplate
  </ContentPresenter>
<Datatemplate>

在转换器中:

public class IndexTovisibilityConverter: IValueConverter
{

   public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
   {
     int index= (int)value;

      if (index > 3)
        return Visibility.Collapsed;
      else
        return Visibility.Visible;
  }

  public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  {
    return null;
  }
}

答案 4 :(得分:0)

你可以在后面的代码中完成。

    ListItem l = new ListItem();
    l.Text = "New";
    l.Value = "new";
    l.Attributes.CssStyle.Add("visibility", "hidden");