隐藏下拉列表中的项目 - C#

时间:2014-05-14 16:08:54

标签: c# javascript jquery asp.net

我在下拉列表中有一些值,(例如1,2,3)我想隐藏其中一个(例如2),然后当我点击下拉列表时我想只看到1和3个值..

我使用此代码,但它不起作用......

dropDownList.Items[0].Attributes.Add("style", "display: none");

这个解决方案也不起作用......

dropDownList.Items[0].Attributes.Add("style", "visibility: hidden");

但是当我使用此解决方案设置颜色时,它可以正常工作......

有人知道如何在C#中设置它吗?

后来我想取消隐藏此值,我希望看到所有值(1,2,3)

THX。

4 个答案:

答案 0 :(得分:3)

如何禁用它? 代码应该是这样的:

dropDownList.Items[0].Enabled = false;

否则你可以用jQuery隐藏它:

$("#yourDropDownListId option[value='0']").hide();

答案 1 :(得分:2)

我认为您应该尝试删除值

ListItem removeItem=dropDownList.Items.FindByValue("1");
dropDownList.Items.Remove(removeItem);

答案 2 :(得分:0)

我会和COLD TODD的答案一起去。使用css隐藏选择框的项目是依赖于浏览器的行为 - 它可能适用于某些浏览器;它可能无法按预期对其他人起作用。

我假设你在谈论列表中的少量项目。您可以始终将其缓存在视图状态中。使用NameValueCollection来存储这些项目。

我还没有在所有浏览器中测试过。在IE10中,您根本无法隐藏项目。在chrome中,无论如何都无法隐藏第一个项目。您可以使用jsfiddle上的示例:

<select id='myoptions'></select>
<br/>
<br/>Hide:
<br/>
<div class="form-inline">
    <select id="ctrls"></select>
    <input type="button" class="btn btn-default" value="Go" id="btnhide" />
</div>

onLoadScript:

var data = {
    'foo1': 'bar1',
        'foo2': 'bar2',
        'foo3': 'bar3',
        'foo4': 'bar4',
        'foo5': 'bar5'
};
$(function () {
    var $sel = $('#myoptions');
    var $sel2 = $('#ctrls');
    $.each(data, function (idx, val) {
        var opt = document.createElement('option');
        opt.value = val;
        opt.innerHTML = idx;
        $sel.append(opt);
        $sel2.append($(opt).clone());
    });
    $('#btnhide').click(function () {
        var val = $sel2.val();
        $sel.find('option').show();
        $sel.find('option[value=' + val + ']').hide();
    });
});

答案 3 :(得分:0)

假设您使用的是ASP下拉列表,则只需将Enabled =“ False”添加到要隐藏的任何一个。

<asp:DropDownList ID='DDL' runat="server" >  
    <asp:ListItem>1</asp:ListItem>
    <asp:ListItem Enabled="False">2</asp:ListItem>
    <asp:ListItem>3</asp:ListItem>
 </asp:DropDownList>