【问题标题】:Dynamic height for AJAX Autocomplete TextboxAJAX 自动完成文本框的动态高度
【发布时间】:2011-11-21 21:33:41
【问题描述】:

我在 <asp:textbox> 控件中使用 AJAX 自动完成插件。我在<ajaxToolkit:AutoCompleteExtender> 周围使用<div> 处理一切。

我设置了以下 CSS 类:

.autocomplete_CompletionListElement
{
    margin: 0px;
    background-color: White;
    cursor: default;
    overflow-y: auto;
    overflow-x: hidden;
    height:180px;
    text-align: left;
    border: 1px solid #777;
    z-index:10000;
}

现在,当列表包含合理数量的项目时,会出现一个垂直滚动条(这是正确的),我可以滚动浏览 CSS 中设置为 180 像素高度的下拉菜单(如上所示)。

但是,当下拉列表中只有 1 或 2 个项目时,高度保持固定为 180 像素,其中 2 个项目和下面的空白区域。我最理想的情况是 AJAX 下拉菜单会缩小以适应其内容的高度。如果内容超过 180 像素,那么应该会出现滚动条(就像现在一样)。

【问题讨论】:

  • 当前我也在实现 Autocomplte TExtbox 你能告诉我你是如何在 web 服务中实现这个方法的。 [System.Web.Services.WebMethod] [System.Web.Script.Services.ScriptMethod] public string[] GetAssetName(string prefixText, int count) {} 我已经从 DB 中填充了数据表,但是如何转换/转换为字符串[]?这样这个方法会返回这个字符串吗?你能帮帮我吗?谢谢
  • 我所做的是循环遍历数据表的每个元素,并将该项添加到字符串数组中。

标签: asp.net ajax autocomplete height scrollbar


【解决方案1】:

删除 height:180px 并更改 CSS 以使用如下内容:

max-height:180px;

应该可以(但我认为只能从 IE7+ 开始)其他浏览器应该支持它。

【讨论】:

  • 谢谢! max-height 对不支持它的浏览器有什么影响?在最坏的情况下,高度会固定在 180 吗?
  • 为了让它工作,你必须删除 height:180px 所以如果不支持 max-height 列表将自动调整并且不应该出现垂直滚动条。自动调整到所需的任何高度,所以如果列表很长,你就有麻烦了所以我想最好的主意是对 IE
  • 也许这适用于所有浏览器: height: expression (this.scrollHeight > 179 ? "180px" : "auto" ); /* 设置 IE 的最大高度/ max-height: 180px; / 为所有符合标准的浏览器设置最大高度值 */ 如下所示:perishablepress.com/press/2007/01/16/…Thanks
  • 这行得通。但是,如果您关心这一点,这违反了 css 合规性。虽然条件评论解决方案可以作为条件。通讯。是所有其他浏览器的普通 cmets。如果您愿意,请不要忘记为我的所有工作投票:p
猜你喜欢
  • 2012-10-18
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 1970-01-01
相关资源
最近更新 更多