Javascript 禁用AjaxToolkit CascadingDropDown后,无法在客户端获取它
我有一个CascadingDropDown,我不想在PageLoad上运行,但会在下拉列表更改后运行。为了实现这一点,我在页面加载事件中禁用了it服务器端,然后它才有机会运行。然后,当ddl被更改时,我将使用jquery来启用CascadingDropDown。我遇到的问题是,在禁用CascadingDropDown之后,jquery无法找到它。有人知道我怎样才能掌握它吗,或者有别的方法吗 下面是我的级联下拉列表:Javascript 禁用AjaxToolkit CascadingDropDown后,无法在客户端获取它,javascript,jquery,vb.net,cascadingdropdown,Javascript,Jquery,Vb.net,Cascadingdropdown,我有一个CascadingDropDown,我不想在PageLoad上运行,但会在下拉列表更改后运行。为了实现这一点,我在页面加载事件中禁用了it服务器端,然后它才有机会运行。然后,当ddl被更改时,我将使用jquery来启用CascadingDropDown。我遇到的问题是,在禁用CascadingDropDown之后,jquery无法找到它。有人知道我怎样才能掌握它吗,或者有别的方法吗 下面是我的级联下拉列表: <ajaxToolkit:CascadingDropDown id="aj
<ajaxToolkit:CascadingDropDown id="ajaxccd_ddlFoo" runat="server"
TargetControlid="ddlFoo" ParentControlid="ddlBar" PromptText="-- Select --"
Category="Foo" ServicePath="~/AJAXWebServices/CascadingDropDownPopulator.asmx"
ServiceMethod="Populate_ddlFoo" />
下面是我尝试获取对象客户端的位置:
$(".ddlBarCls").click(function () {
var ajaxccd_ddlFooID = document.getElementById('ajaxccd_ddlFooID').value;
var ajaxccd_ddlFoo = $find(ajaxccd_ddlFooID);
});
问题是ajaxccd_ddlFoo总是不返回任何内容。我已经确认,当ajaxccd_ddlTPA未在服务器端禁用时,jquery将很容易找到它
任何帮助都将不胜感激
ajaxccd_ddlTPA.Enabled = False
禁用控件服务器端(请参见上文)时,实际发生的情况是asp.net framework不会将控件呈现给浏览器。这就是为什么jquery找不到该控件,因为该控件在浏览器中不存在
如果需要在浏览器中操纵控件,则需要以框架仍将其渲染到浏览器的方式禁用该控件
一种方法是启用控件,然后在浏览器的页面加载事件上使用javascript禁用它
示例
在页面(*.aspx)的标题部分添加此代码。此代码在页面加载事件时执行
<script type="text/javascript">
function pageLoad(sender, args) {
$find("myFoo").add_populated(onPopulated);
}
function onPopulated() {
$get("ddlFoo").disabled = true;
}
</script>
<script type="text/javascript">
function pageLoad(sender, args) {
$find("myFoo").add_populated(onPopulated);
}
function onPopulated() {
$get("ddlFoo").disabled = true;
}
</script>
<ajaxToolkit:CascadingDropDown id="ajaxccd_ddlFoo"
runat="server"
TargetControlid="ddlFoo"
ParentControlid="ddlBar"
BehaviorID="myFoo"
PromptText="-- Select --"
Category="Foo"
ServicePath="~/AJAXWebServices/CascadingDropDownPopulator.asmx"
ServiceMethod="Populate_ddlFoo" />