none
asp:listbox如何实现水平滚动条?或者是鼠标停留在哪一个Items时,鼠标显示Items的值? RRS feed

  • 问题

  • asp:listbox如何实现水平滚动条?
    或者是鼠标停留在哪一个Items时,鼠标显示Items的值?
    • 已移动 孟宪会Moderator 2009年6月3日 9:43 ([Loc]From:.NET Framework 一般性问题讨论区)
    2009年6月3日 7:57

答案

  • 你好 listbox在webform中是无法水平滚动的,这个跟winform不同 对于你的第二问题 你可以通过为每个项添加title来实现
     foreach (ListItem item in this.ListBox1.Items)
    { item.Attributes.Add("title", item.Text); }

     当然你也可以结合一些js脚本比如jquery等来实现一种好看的提示效果
     foreach (ListItem item in this.ListBox1.Items)
    { item.Attributes.Add("onmouseover", "showToolTip(this);"); }

    而这里的ShotoolTip是一个JavaScript 函数 你可以在这个里边处理如何提示信息
    可以参考这篇文章
    http://blog.csdn.net/xuwenwu/archive/2007/01/19/1487726.aspx
    努力着就不会放弃!.net技术交流群 33083877http://hi.baidu.com/1987raymond
    2009年6月3日 8:48
    版主

全部回复

  • 你好 listbox在webform中是无法水平滚动的,这个跟winform不同 对于你的第二问题 你可以通过为每个项添加title来实现
     foreach (ListItem item in this.ListBox1.Items)
    { item.Attributes.Add("title", item.Text); }

     当然你也可以结合一些js脚本比如jquery等来实现一种好看的提示效果
     foreach (ListItem item in this.ListBox1.Items)
    { item.Attributes.Add("onmouseover", "showToolTip(this);"); }

    而这里的ShotoolTip是一个JavaScript 函数 你可以在这个里边处理如何提示信息
    可以参考这篇文章
    http://blog.csdn.net/xuwenwu/archive/2007/01/19/1487726.aspx
    努力着就不会放弃!.net技术交流群 33083877http://hi.baidu.com/1987raymond
    2009年6月3日 8:48
    版主
  • item的onmouseover事件都不能触发?是怎么回事?
    2009年6月3日 9:32
  • 默认情况下是不行的,你可以采取模仿的方法,网上也有很多不同的版本实现

    类似这样
    http://dotnet.aspx.cc/article/c81ad80e-fc14-4ff8-85f3-16cc68811bd5/read.aspx

    http://dotnet.aspx.cc/Exam/WebDropDownList.aspx

    【孟子E章】
    2009年6月3日 9:48
    版主
  • 楼主,你好

    1987raymond的第一种解决方式很不错了。
    Microsoft Online Community Support
    2009年6月4日 3:53
  • 第一种加title属性根本不行啊。没有这个属性。
    2009年6月4日 4:02
  • 你好,

    你参考下面的代码试试。
    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
    
                foreach (ListItem item in ListBox2.Items)
                {
                    item.Attributes.Add("title", item.Text);
                }
            }
    
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:ListBox ID="ListBox2" runat="server" Width="200px"  CssClass="scrollDemo">
                <asp:ListItem>1222222222222222222222222</asp:ListItem>
                <asp:ListItem>11111111111111111111111111111</asp:ListItem>
                <asp:ListItem>33333333333333333333333333333333333</asp:ListItem>
                <asp:ListItem>1234567891011121314151617181920212223242526272829</asp:ListItem>
            </asp:ListBox>
        </div>
        </form>
    </body>
    </html>
    

    Microsoft Online Community Support
    2009年6月4日 4:08
  • 我试过不行的,我的asp:ListItem是在C#中动态添加的,在添加的时候就把title属性加进去了的。html页面的option的属性中也出现了title属性。
    但是还是没有出现title的值。
    2009年6月4日 4:43
  • 你好,

    我上面的代码你是否试过。


    Microsoft Online Community Support
    2009年6月4日 4:47
  • 我试过了的啊!

    2009年6月4日 5:32
  • 你好,

    那就奇怪了,我在IE7上和Firefox上测试都是好的噢。你用的是哪个版本的浏览器,版本号多少。
    Microsoft Online Community Support
    2009年6月4日 5:45
  • IE6.0.2900.2180
    对了我用的是framework sdk v2.0
    2009年6月4日 6:18
  • 你好,

    这和framework版本没关系。我估计是不是浏览器版本的原因。因为我这边没有IE6的环境,所以我没法帮你测试了,或者你用其它浏览器试试。
    Microsoft Online Community Support
    2009年6月4日 6:26
  • asp:listbox能实现和scrollBar绑定吗。在VB中实现过。不知C#能行不?
    有哪位大虾实现过吗?
    2009年6月4日 8:56
  • 你可以通过 Table 或 GridView 这样的控件加上一些 Html 控制,来模拟 ListBox 来实现你的功能嘛
    知识改变命运,奋斗成就人生!
    2009年6月4日 10:44
    版主
  • 当然,用Panel加上Lable也可以实现。就是想大家讨论一下看看有没有达人实现了。借此也学习一下。

    2009年6月5日 1:04
  • 用 js 写个 onmouseon  onmouseout的 方法 不就是实现了
    确实很萌
    2009年6月5日 8:10
  • 用 js 写  方法 加到 item.Attributes里面
    确实很萌
    2009年6月5日 8:12