2011-11-21 59 views
3

我有一個顯示數據庫數據的下拉列表框。問題是有些記錄很長,所以下拉框的寬度延伸到我的屏幕邊上。我有一個合理的寬度設置,但它不會停止下拉框越來越寬,因爲它需要顯示每條記錄。我怎樣才能設置一個固定的寬度呢?即使設置了寬度,下拉列表框也會根據需要變寬

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
    DataSourceID="SqlDataSource1Usage" DataTextField="data_text" 
    DataValueField="ID" Width="280px"> 
</asp:DropDownList>here 

感謝,

+2

這是諸如此類的事情,你的意思? http://jsfiddle.net/UT4bf/這裏的'

+0

是的,確切地說,我的DDL框中的選項值變得越來越寬 – htm11h

回答

0

您可以使用CSS。定義具有固定寬度的樣式並在創建下拉框時使用它。

+0

我在Master頁面中有一個嵌入的aspx頁面,並且沒有部分在頁面上放置樣式代碼。你知道如何做到這一點? – htm11h

+0

然後,在master頁面的中鏈接你的css文件。 – mert

+0

試過了,它仍然不起作用。測試3個瀏覽器。 – htm11h

3

嘗試設置樣式如下:

<select id="yourselect" style="width: 100px; max-width: 100px"> 
    <option>...</option> 
</select> 

<div style="width: 100px; max-width: 100px"> 
    <select id="yourselect" style="width: 100%; position: relative"> 
     <option>...</option> 
    </select> 
</div> 

也許這有助於...

編輯:使用Attributes屬性:

標記:

<asp:DropDownList ID="cboItems" runat="server" /> 

後面的代碼:

List<ListItem> items = new List<ListItem>(); 
for (int i = 1; i < 11; i++) 
{ 
    ListItem item = new ListItem(); 
    item.Text = string.Format("this is a very very long item text corresponding to the number {0}", i); 
    item.Value = i.ToString(); 
    items.Add(item); 
} 
cboItems.DataSource = items; 
cboItems.DataBind(); 
// after data bind is complete 
cboItems.Attributes["style"] = "width: 100px; max-width: 100px"; 

也許我不明白你想要做什麼,但是這是我的意思與屬性。

+0

它是一個數據綁定控件,所以我無法將屬性分配給控件。 – htm11h

+0

你可以在屬性屬性後面的代碼上做到這一點,或者即使在「樣式」不會出現在智能感知上,你也可以在標記上做到這一點。 – MilkyWayJoe

+0

這就是我想要解釋的,沒有屬性。讓我嘗試div的想法。不,沒有工作。 – htm11h