因为我将一个asp:dropdownlist和一个asp:checkboxlist结合起来,我在IE(8)和Firefox(Chrome工作正常)中遇到问题,每当我点击DropDownList时,除了我手动弹出窗口外,还出现空框单击下拉列表时打开。
我现在的问题是:如何隐藏这个空框(因为其中没有条目),但保留下拉元素?我不想替换这个组件,因为它仍然应该看起来像一个下拉列表。如果我将其更改为文本框,则不再清楚它是否可以用作下拉列表。
这就是我目前所拥有的:
<div style="width: 190px;" class="right">
<!-- the original drop down list -->
<asp:DropDownList CssClass="dropdownbox" ID="ddlCountry" runat="server">
</asp:DropDownList>
<cc1:PopupControlExtender ID="ddlCountry_PopupControlExtender" runat="server" DynamicServicePath=""
Enabled="True" ExtenderControlID="" TargetControlID="ddlCountry" PopupControlID="pnlPopup"
OffsetY="20">
</cc1:PopupControlExtender>
<!-- Popup control extender that maps the country list to the dropdown list -->
<asp:Panel ID="pnlPopup" runat="server" CssClass="dropdowncheckbox">
<!-- List of countries with a checkbox for each entry -->
<asp:CheckBoxList ID="countryList" runat="server"
DataTextField="Countries" DataValueField="Countries" AutoPostBack="True"
OnSelectedIndexChanged="countryList_SelectedIndexChanged">
</asp:CheckBoxList>
</asp:Panel>
</div>
如果有更适合我目的的组件,请告诉我。 非常感谢您的建议。
答案 0 :(得分:1)
将此代码放在需要触发更改的事件中 这适用于c#
if(dropdownlist.Items.Count == 0)
{
dropdownlist.Attributes["style"] = "display: none;";
}
else
{
dropdownlist.Attributes["style"] = "";
}
答案 1 :(得分:0)
只需将Drop Down List Enabled属性设置为false,并在有条目时将其切换为true。
dropdownbox.Enabled = false;
答案 2 :(得分:0)
将下拉列表封装为div,给div一个id和runat =“server”
检查数据后面的代码,加载下拉列表是空的,如果不将div设置为可见,则将div设置为可见false。
希望有所帮助
答案 3 :(得分:0)
在c#中执行类似的操作:
if(dropdownlist.Items.Count == 0)
{
dropdownlist.Visiable = false;
}
else
{
dropdownlist.visable = true;
}