Internet Explorer中的ASP.NET Dropdownlist itemslist width问题

时间:2011-02-04 08:57:40

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

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

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

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

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

3 个答案:

答案 0 :(得分:0)

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

更好的选择是使用Telerik或ComponentOne等第三方控件集,这些控件集已经在其控件集中内置了此功能。上述建议假定您必须使用内置控件。

答案 1 :(得分:0)

在互联网上,我发现很多人都提出了你的问题,所有人都得到了与你相同的答案。他们最终会接受这个冷酷的事实,你很快就会这么做。

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

自定义控件不会太难。在我的头顶,可能是一个“选择器”div,隐藏的ol,一些mouseover / mouseout事件处理程序,以及一个ASP.NET转发器来填充列表项。我不会详细介绍实现此自定义控件的细节,因为有很多方法可以实现。正如乔希所说,Telerik和ComponentOne已经实施了这样的控制,但当然是有代价的。如果您愿意,我愿意为您修改一些代码。

答案 2 :(得分:0)

这应该解决它,你可以对造型进行任何改变,它的工作完美,包括样式标签,并选择我错过的地方:

<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';" >