【问题标题】:asp.net ajax toolkit combobox doesn't work in hidden divasp.net ajax 工具包组合框在隐藏的 div 中不起作用
【发布时间】:2010-03-28 22:28:14
【问题描述】:

我在隐藏的 div 中有一个组合框,我使用 CSS display = none 使其不可见,但是当我通过设置 display = block 使 div 可见时,组合框只显示输入及其按钮和 ul 列表都有CSS as display = 'none', visibility ='hidden'。

我可以说它是通过组合框内置 JavaScript 完成的,因为我尝试使用 JavaScript 手动设置 CSS,但没有成功。这是组合框的一个错误。

以下是重现该错误的代码。运行时看不到下拉菜单:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
<div  id="d" style="display:none">
    <asp:ComboBox ID="ComboBox1" runat="server">
    <asp:ListItem>a</asp:ListItem>
    <asp:ListItem>d</asp:ListItem>
    <asp:ListItem>f</asp:ListItem>
    </asp:ComboBox>
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div ID="Button1" runat="server" onclick="show();">click me</div>

<script type="text/javascript">
    function show() {
        var d = $get('d');
        d.style.display = 'block';
    }
</script>

【问题讨论】:

  • 我认为您不太可能在工具包中发现错误;您更有可能对它应该使用的方式有所了解。当然,您可能发现了一个错误,并且您的团队对工具包的信任是错误的,或者没有您想要的坚实基础。但是,如果您发现了错误,则需要将其报告给维护人员...
  • 事实证明这是一个错误。我必须将显示逻辑放在js页面加载中的show()方法而不是代码后面,然后它就起作用了。

标签: asp.net ajax controls toolkit


【解决方案1】:

尝试对 div 使用“visibility=hidden”而不是“display=none”

【讨论】:

    【解决方案2】:

    我刚刚遇到了同样的问题,我已经部分解决了。使用“隐藏”而不是“无”几乎可以工作,但奇怪的是,即使 div 被隐藏,箭头图标仍然保持在 div 之外并且可见。

    我没有使用任何应用于我的隐藏 div 的样式属性,而是使用未经修改的组合框样式。

    顺便说一下,我已经在 Chrome 和 IE9 上检查过了。感谢您的任何帮助。

    【讨论】:

    • 我认为这是关于按钮类的。
    【解决方案3】:

    您的 button-div (ID="Button1") 将回发页面,因为它是“runat=server”。删除它,很可能它会正常工作。

    【讨论】:

    • 因此,div 不会回发。 runat="server" 只告诉 div 可以作为服务器代码中的 HtmlControl 访问。
    猜你喜欢
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    相关资源
    最近更新 更多