【问题标题】:ASP.NET Dropdownlist itemslist width issue in Internet ExplorerInternet Explorer 中的 ASP.NET 下拉列表项列表宽度问题
【发布时间】:2011-02-04 08:57:40
【问题描述】:

我需要以某种方式修改 ASP.NET 下拉列表控件以在项目列表上具有自动宽度。下拉列表控件本身具有固定宽度且无法更改。

我已经尝试了几种方法都无济于事,请参阅http://forums.asp.net/t/1648469.aspx

你们中的一些人已决定通过构建自定义下拉控件来解决此问题,但在我的情况下,这并不是一个真正的选择。

在回答之前,请检查上面链接中的线程,以确保我还没有通过它。

【问题讨论】:

    标签: asp.net internet-explorer drop-down-menu width


    【解决方案1】:

    无法从标准 DDL 控件中获得您所描述的确切行为。最好的办法是在页面上放置一个空白 DDL,并在其下方直接隐藏一个列表框。使用 JavaScript 使列表框出现和消失 onlick。您将获得选择,并且 DDL 的宽度不会改变,但列表框的宽度可以是动态的。

    更好的选择是使用第三方控件集,例如 Telerik 或 ComponentOne,该控件集已内置此功能。上述建议假设您必须使用内置控件。

    【讨论】:

    • 感谢您的回答!是的,似乎最好的选择是获取第三方组件,例如 Telerik 或 ComponentOne 选项,除非我可以轻松调整标准 DDL 控件。感谢您的意见!
    【解决方案2】:

    在互联网上拖钓时,我发现很多人都问过您的问题,并且都得到了与您相同的答案。他们最终接受了冷酷的事实,你很快也将不得不接受。

    在 IE 中,下拉列表的选项(下拉列表)部分与选择部分(下拉框)的大小相同,但没有更好的术语。您将需要调整整个控件的大小,as this post details,或者构建一个自定义 HTML 控件。如果我错了,我肯定会第一个承认这一点(以及提供相同解决方案的许多其他人),但希望似乎很渺茫。

    自定义控件不会太难。在我的脑海中,可能是一个“选择器”div、隐藏的 ol、一些 mouseover/mouseout 事件处理程序,以及一个用于填充列表项的 ASP.NET 中继器。我不会详细介绍实现这个自定义控件的细节,因为有很多方法可以做到。正如 Josh 所说,Telerik 和 ComponentOne 已经实施了这样的控制,但当然是有代价的。如果您愿意,我愿意为您编写一些代码。

    【讨论】:

    • 感谢您的回答!是的,根据 Joshs 的建议,第三方组件是最简单的,但我愿意尝试手动解决方法,前提是我可以让它模仿我需要的行为。
    【解决方案3】:

    这应该可以解决它,您可以对样式进行任何更改并且效果很好,包括样式标签并选择我错过的地方:

    <style>
    .ctrDropDown{
        width:205px;
        font-size:11px;
    }
    .ctrDropDownClick{
        font-size:11px;
        width:250px;
    
    }
    .plainDropDown{
        width:205px;
        font-size:11px;
    }
    </style>
    
    <div style= "width:205px; overflow:hidden;">
    select id="Dropdownlist" class="ctrDropDown"  onblur="this.className='ctrDropDown';" onmousedown="this.className='ctrDropDownClick';" onchange="this.className='ctrDropDown';" >
    

    【讨论】:

    • 还有一个 javascript 解决方案,如果你需要,请告诉我,我可以给你发送 lnk
    • 很抱歉,此解决方案不适用于 IE11 以及所有较新版本。请注意,显示所有可选项目的 DDL 选项部分将与列表中最宽的项目一样宽。我已经为此奋斗了一年多,并发现除了自定义代码控件之外的任何解决方案。
    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多