将水平滚动添加到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/Horizo​​ntalListBox.aspx上获得的代码和解决方案