2012-01-21 3 views
1

Каков предпочтительный метод изменения свойства видимости элемента управления .NET Ajax Control Toolkit CascadingDropDown? Я хотел бы сделать элемент управления «невидимым», когда значение null возвращается из запроса.Как изменить видимость элемента управления CascadingDropDown

Похоже, что событие «OnSelectedIndexChanged» не срабатывает с <asp:DropDownList> при использовании расширителя инструментария.

ответ

1

Честно говоря, я бы просто нацелил DropDownList на то, что CascadingDropDownExtender прилагается к стилю display:none css. Вы можете сделать это в 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 (например, проверять, нет ли элемента управления для выбора и т. Д.). Если у вас есть проблемы с этим, дайте мне знать, и я могу попытаться помочь с этим.
EDIT: Я добавил возможный пример указанной логики =)

+0

Спасибо за ваш ответ. Я немного не понимаю эту технику. Например. если ID = «myDropDownParent» Событие OnSelectedChange контролирует ID = «myDropDownChild», будет ли ID = «myDropDownParent» содержать свойство onchange? И var ddl = document.getElementById ("<% = myDropDownListChild.ClientID%>; ... в скрипте? – soulia

+0

BTW, выше это работало. Еще раз спасибо! Будучи javascript noob, как бы вы проверили на пустой или нулевое значение в дочернем элементе? – soulia

+0

@soulia Я добавил чек, чтобы узнать, пуст ли пуст =) Если это вам помогло, не стесняйтесь повышать или принимать этот ответ (или оба!). Счастливое кодирование! – jadarnel27