【问题标题】:Cannot get an AjaxToolkit CascadingDropDown on client side after disabling it禁用后无法在客户端获取 AjaxToolkit CascadingDropDown
【发布时间】:2014-09-05 14:56:31
【问题描述】:

我不想在 PageLoad 上运行 CascadingDropDown,但会在更改下拉列表后运行。为了实现这一点,我在它有机会运行之前在页面加载事件中禁用它的服务器端。然后当 ddl 更改时,我将使用 jquery 来启用 CascadingDropDown。我遇到的问题是 jquery 在禁用后找不到 CascadingDropDown 。有谁知道我怎样才能掌握它,或者另一种方法?

这是我的级联下拉菜单:

<ajaxToolkit:CascadingDropDown id="ajaxccd_ddlFoo" runat="server"
TargetControlid="ddlFoo" ParentControlid="ddlBar" PromptText="-- Select --"
Category="Foo" ServicePath="~/AJAXWebServices/CascadingDropDownPopulator.asmx" 
ServiceMethod="Populate_ddlFoo" />

我在 VB.net 页面加载事件中禁用它的代码:

ajaxccd_ddlTPA.Enabled = False

这里是我尝试获取对象客户端的地方:

$(".ddlBarCls").click(function () {
        var ajaxccd_ddlFooID = document.getElementById('ajaxccd_ddlFooID').value;
        var ajaxccd_ddlFoo = $find(ajaxccd_ddlFooID);
    });

问题是 ajaxccd_ddlFoo 总是什么都不返回。我已经确认,当服务器端没有禁用ajaxccd_ddlTPA时,jquery将毫无问题地找到它。

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript jquery vb.net cascadingdropdown


    【解决方案1】:
    ajaxccd_ddlTPA.Enabled = False
    

    当您禁用控制服务器端(见上文)时,实际发生的情况是 asp.net 框架不会将控件呈现给浏览器。这就是为什么您的 jquery 找不到该控件的原因,因为该控件在浏览器中不存在。

    如果您需要在浏览器中操作控件,则需要以框架仍将其呈现给浏览器的方式禁用它。

    一种方法是启用控件,然后在浏览器的页面加载事件上使用 javascript 来禁用它。

    示例

    将此代码添加到页面的头部 (*.aspx)。此代码在页面加载事件中执行。

    <script type="text/javascript">
        function pageLoad(sender, args) {
            $find("myFoo").add_populated(onPopulated);
        }
        function onPopulated() {
            $get("ddlFoo").disabled = true;
        }
    </script>
    

    并在您的 CascadingDropDown 控件上添加必要的 BehaviorID 属性

    <ajaxToolkit:CascadingDropDown id="ajaxccd_ddlFoo"
        runat="server"
        TargetControlid="ddlFoo"
        ParentControlid="ddlBar"
        BehaviorID="myFoo"
        PromptText="-- Select --"
        Category="Foo"
        ServicePath="~/AJAXWebServices/CascadingDropDownPopulator.asmx" 
        ServiceMethod="Populate_ddlFoo" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 2023-03-13
      • 2012-09-30
      • 1970-01-01
      • 2011-01-13
      • 2012-10-14
      相关资源
      最近更新 更多