如何向asp.net列表框控件添加水平滚动功能?
答案 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尺寸相匹配 选择框,使滚动条正常工作/排队。这就是为什么 这有点棘手。
另外,请看一下: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文本框的视图,所有数据都以良好的格式排列,如上面的代码(新行和所有)。如果文本超出文本框的宽度,它也会包装你的文本。此外,您无需担心滚动条,在这里您将只获得垂直滚动条,因为我们的所有结果都按照文本框的行为进行了包装。