【发布时间】: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