我在下拉列表中有一些值,(例如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。
答案 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>