2008-09-05 63 views

回答

1

如果你真的需要它,一個想法是創建一個自定義的ListBox類,它的HTML如下所示:將SELECT 的寬度設置爲最寬值的寬度(滾動條的最大寬度,例如 )。現在將這個SELECT包裹在'約束'的DIV中,讓它在溢出時滾動。

這裏有一個簡單的例子開始直到這些線路,這裏有你想要通過控制吐出 HTML類型:

<div style="width:200px; height:100px; overflow:auto;"> 
<SELECT size="4"> 
<OPTION 
Value="1">blahblahblahblahblahblahblahblahblahblah blahblah</OPTION> 
<OPTION Value="2">2</OPTION> 
<OPTION Value="3">3</OPTION> 
<OPTION Value="4">4</OPTION> 
</SELECT> 
</div> 

所以在本質上,我建議創建複合自定義控制 此,呈現這個HTML。他們很容易製作,谷歌在 條款'複合控制asp.net'。

最困難的部分將匹配div尺寸與 選擇框的尺寸,以使滾動條正常工作/排列。這就是爲什麼 它有點棘手。

Source

而且,看看這個:Automatically Adding/Hide Horizontal Scroll bar in the ListBox control

編輯:請確保您有足夠的高度,包括滾動條的高度,否則你會得到兩個垂直滾動條控制。

1

我們可以把這個列表框放在一個DIV中,併爲DIV設置溢出的樣式,它會在需要時自動顯示滾動條。

你的aspx頁面具有以下DIV:

<div id='hello' style="Z-INDEX: 102; LEFT: 13px; OVERFLOW: 
      auto; WIDTH: 247px; POSITION: absolute; TOP: 62px; HEIGHT: 134px" > 

把你的asp:列表框的DIV定義中。在page_load函數中,您需要正確定義列表框的寬度和高度,以便它不會與DIV溢出。

private void Page_Load(object sender, System.EventArgs e) 
{ 
    if (!IsPostBack) 
    { 

     int nItem = Convert.ToInt32(ListBox1.Items.Count * 17); 
     ListBox1.Height = nItem; 

     ListBox1.Width = 800; 

    } 
} 

代碼,並在http://www.codeproject.com/KB/custom-controls/HorizontalListBox.aspx

+0

我喜歡你同化另一個答案的方式! – 2012-05-31 15:27:17

0

如果僅用於顯示目的,這樣做,您可以通過使用帶有mulitiline屬性的Textbox以另一種方式來完成此操作。通過追加文本與新行這樣!

List<Yourclass> result = null; 
    result = Objname.getResult(Parameter1, Parameter2); 
    foreach (Yourclass res in result) 
    { 
     txtBoxUser.Text += res.Fieldname1.ToString(); 
     txtBoxUser.Text += "\r\n" + res.Fieldname2.ToString(); 
     txtBoxUser.Text += "\n\n"; 
    } 

因此,你會得到mulitline文本框的佈置良好的格式,上面的代碼(新行和所有)的所有數據視圖。如果它超出了文本框的寬度,它也會包裝你的文本。你也不需要爲滾動條而煩惱,在這裏你只會得到垂直滾動條,因爲我們所有的結果都是按照文本框的行爲來包裝的。