将水平滚动添加到asp.net列表框控件
时间:2020-03-05 18:48:08 来源:igfitidea点击:
如何向asp.net列表框控件添加水平滚动功能?
解决方案
回答
如果我们真的非常需要它,一个想法是创建一个自定义
HTML的ListBox类如下所示:设置SELECT的宽度
到最大宽度的宽度(滚动条的最大宽度,
例如)。现在,将SELECT包裹在" constrained"的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。他们很容易制作,Google on
术语"复合控件asp.net"。
最困难的部分是将div尺寸与
选择框,以使滚动条正常工作/对齐。这就是为什么
这有点棘手。
来源
另外,请看一下:ListBox控件中的"自动添加/隐藏水平滚动条"
编辑:请确保我们有足够的高度以包括滚动条的高度,否则我们将在两个控件上都获得垂直滚动条。
回答
我们可以将此列表框放在DIV中,并将DIV的样式设置为溢出,以便在必要时自动显示滚动条。
aspx页面具有以下DIV:
<div id='hello' style="Z-INDEX: 102; LEFT: 13px; OVERFLOW: auto; WIDTH: 247px; POSITION: absolute; TOP: 62px; HEIGHT: 134px" >
将asp:listbox放入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上获得的代码和解决方案