Честно говоря, я бы просто нацелил 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: Я добавил возможный пример указанной логики =)
Спасибо за ваш ответ. Я немного не понимаю эту технику. Например. если ID = «myDropDownParent» Событие OnSelectedChange контролирует ID = «myDropDownChild», будет ли ID = «myDropDownParent» содержать свойство onchange? И var ddl = document.getElementById ("<% = myDropDownListChild.ClientID%>; ... в скрипте? – soulia
BTW, выше это работало. Еще раз спасибо! Будучи javascript noob, как бы вы проверили на пустой или нулевое значение в дочернем элементе? – soulia
@soulia Я добавил чек, чтобы узнать, пуст ли пуст =) Если это вам помогло, не стесняйтесь повышать или принимать этот ответ (или оба!). Счастливое кодирование! – jadarnel27