【问题标题】:How to change the visibility of CascadingDropDown control如何更改 CascadingDropDown 控件的可见性
【发布时间】:2023-04-09 07:43:02
【问题描述】:

更改 .NET Ajax 控件工具包CascadingDropDown 控件的可见性属性的首选方法是什么?当从查询返回 null 值时,我想使控件“不可见”。

使用工具包扩展程序时,<asp:DropDownList> 似乎不会触发“OnSelectedIndexChanged”事件。

【问题讨论】:

    标签: asp.net ajaxcontroltoolkit cascadingdropdown


    【解决方案1】:

    老实说,我只会使用 display:none css 样式来定位 CascadingDropDownExtender 所附加的 DropDownList。您可以在页面上的 javascript 中执行此操作,如下所示:

    <script type="text/javascript">
        function hideDDL(){
            // Get the DropDownList by its ID value
            var ddl = document.getElementById("<%= myDropDownList.ClientID %>");
            // If there are no items in the drop down, hide it
            if (ddl.options.length == 0)
                ddl.style.display = "none";
        }
    </script>
    

    然后,在您的DropDownList 标记中,只需将上面的函数添加到客户端onchange 事件:

    <asp:DropDownList runat="server" ID="myDropDownList" onchange="hideDDL();" ... >
        ...
    </asp:DropDownList>
    

    注意:显然,您会希望 javascript 函数中的逻辑来指示 DropDownList 是否应该隐藏(例如检查控件是否没有要选择的元素等)。如果您对此有疑问,请告诉我,我也可以尝试提供帮助。
    编辑:我添加了一个可能的示例说逻辑=)

    【讨论】:

    • 感谢您的回复。我对上述技术有点不清楚。例如。如果 ID="myDropDownParent" OnSelectedChange 事件控制 ID="myDropDownChild",ID="myDropDownParent" 是否包含 onchange 属性?而 var ddl = document.getElementById(";... 在脚本中?
    • 顺便说一句,以上确实有效。再次感谢!作为一个 javascript 菜鸟,您将如何检查 Child 元素中的空值或 null 值?
    • @souli 我添加了检查以查看下拉菜单是否为空 =)如果这对您有所帮助,请随时投票或接受此答案(或两者都接受!)。编码愉快!
    • 谢谢。这个工具包通常困扰我的一件事是我需要实现一个脚本补丁来覆盖一个基本属性。我使用的 AJAXToolkit 工具是一个 CascadingDropDown “扩展器”,它恰好消除了一些基本的 DropDownList 属性。 “扩展器”意味着添加功能,而不是替换,或者更糟糕的是,禁用。其他程序员请酌情评论。
    • @souli 是的,这就是我不再使用 AJAX 控制工具包的部分原因。比较麻烦。我现在倾向于使用 jQuery 来处理这样的事情;有一点学习曲线,但完全值得。
    猜你喜欢
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 2012-11-02
    • 2017-02-28
    相关资源
    最近更新 更多