2

因为我将 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>

如果有更适合我的目的的组件,请告诉我。非常感谢您的建议。

4

4 回答 4

1

将此代码放在您需要触发更改的事件中 这将适用于 c#

if(dropdownlist.Items.Count == 0)
{
dropdownlist.Attributes["style"] = "display: none;";
}
else
{
dropdownlist.Attributes["style"] = "";
}
于 2015-03-12T17:47:47.357 回答
0

将下拉菜单封装在一个 div 中,给 div 一个 id 和runat="server"属性

签入数据后面的代码加载下拉列表为空设置div为可见false;如果没有,请将 div 设置为可见 true。

于 2013-10-24T20:17:47.950 回答
0

只需将 Drop Down List Enabled 属性设置为 false 并在有条目时将其切换为 true。

dropdownbox.Enabled = false;
于 2013-10-24T15:35:51.690 回答
0

在 c# 中做这样的事情:

if(dropdownlist.Items.Count == 0)
{
      dropdownlist.Visible = false;
}
else
{
      dropdownlist.Visible = true;
}
于 2013-10-25T07:20:11.560 回答