添加水平滚动到asp.net列表框控件

时间:2008-09-05 11:09:29

标签: asp.net listbox scroll

如何向asp.net列表框控件添加水平滚动功能?

4 个答案:

答案 0 :(得分:3)

添加水平滚动的示例:

<asp:ListBox ID="List" runat="server" Height="320px" Width="100%" style="overflow-x:auto;"SelectionMode="Multiple">
</asp:ListBox>

CSS3 overflow-x属性:http://www.w3schools.com/cssref/css3_pr_overflow-x.asp

答案 1 :(得分: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。 Google很容易制作它们 术语'复合控制asp.net'。

最难的部分是将div尺寸与the尺寸相匹配 选择框,使滚动条正常工作/排队。这就是为什么 这有点棘手。

Source

另外,请看一下:Automatically Adding/Hide Horizontal Scroll bar in the ListBox control

编辑:确保您有足够的高度来包含滚动条高度,否则您将获得两个控件上的垂直滚动条。

答案 2 :(得分: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: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

提供的代码和解决方案

答案 3 :(得分: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文本框的视图,所有数据都以良好的格式排列,如上面的代码(新行和所有)。如果文本超出文本框的宽度,它也会包装你的文本。此外,您无需担心滚动条,在这里您将只获得垂直滚动条,因为我们的所有结果都按照文本框的行为进行了包装。