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

问题描述 投票:2回答:3

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

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

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

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

asp.net internet-explorer drop-down-menu width
3个回答
0
投票

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

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


0
投票

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

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

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


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';" >
© www.soinside.com 2019 - 2024. All rights reserved.