2011-02-04 96 views
2

我需要以某種方式修改ASP.NET下拉列表控件以在項目列表上具有自動寬度。下拉列表控件本身具有固定寬度,並且不能更改。在Internet Explorer中ASP.NET Dropdownlist itemslist寬度問題

我曾嘗試幾種方法已經無濟於事,看http://forums.asp.net/t/1648469.aspx

你們當中有些人已經決定建立一個自定義下拉控件來解決這個問題,但是這是不是真的在我的情況選擇。

在回答之前,請檢查上述鏈接中的線索以確保我沒有通過它。

回答

0

沒有辦法獲得您的標準DDL控件所描述的確切行爲。最好的辦法是在頁面上放置一個空白的DDL,列表框直接隱藏在下面。使用JavaScript使列表框出現並消失。你會得到選擇,並且DDL的寬度不會改變,但是列表框的寬度可以是動態的。

更好的選擇是使用像Telerik或ComponentOne這樣的第三方控制集,這個功能已經內置在他們的控制集中。上述建議假定您必須使用內置控件。

+0

謝謝您的回答!是的,似乎最好的選擇是獲得第三方組件,如Telerik或ComponentOne選項,除非我可以輕鬆調整標準的DDL控件。感謝您的輸入! – Peter 2011-02-07 07:16:30

0

在互聯網上,我發現許多人問你的問題,所有人都收到了同樣的答案。他們最終也接受了冷酷的事實,因爲你很快也會接受。

在IE中,下拉列表中的選項(下拉列表)部分與缺少更好條款的選擇部分(下拉框)大小相同。您將需要調整整個控件的大小,as this post details或構建自定義HTML控件。如果我錯了,我肯定會第一個承認它(和其他許多提供相同解決方案的人一樣),但希望似乎很微弱。

自定義控件不會太困難。關閉我的頭頂,也許是一個「選擇器」div,隱藏ol,一些mouseover/mouseout事件處理程序,以及一個ASP.NET中繼器來填充列表項。我不會詳細討論實現這個自定義控件的細節,因爲有很多方法可以做到這一點。正如Josh所說,Telerik和ComponentOne已經實施了這樣的控制,但當然是要付出代價的。如果你願意,我會願意爲你編寫一些代碼。

+0

感謝您的回答!是的,根據喬希的建議,第三方組件是最簡單的組件,但是我願意給手動解決方法一個提供,只要我可以讓它模仿我需要的行爲。 – Peter 2011-02-07 07:22:20

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

這裏也有一個javascript解決方案,讓我知道如果你需要它,我可以發送給你lnk – Sunny 2011-03-31 20:46:30