2014-09-05 1 views
0

У меня есть CascadingDropDown, который я не хочу запускать на странице Load, но будет запущен после того, как выпадающий список будет изменен. Чтобы добиться этого, я отключу его на стороне сервера в событии загрузки страницы, прежде чем он сможет запустить. Затем, когда ddl будет изменен, я буду использовать jquery, чтобы включить CascadingDropDown. Проблема, с которой я сталкиваюсь, заключается в том, что jquery не может найти CascadingDropDown после того, как он отключен. Кто-нибудь знает, как я могу это удержать, или альтернативный способ сделать это?Не удается получить AjaxToolkit CascadingDropDown на стороне клиента после его отключения

Вот мои каскадные DropDown:

<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 не составит труда найти его.

Любая помощь будет принята с благодарностью!

ответ

0
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" /> 
Смежные вопросы