У меня был набор элементов управления, которые я отображал, скрывал, включал и отключал в зависимости от действий на веб-странице. Все работало, пока я не вставил их в аккордеон. Теперь я не могу заставить Javascript обновлять их состояние. У меня есть небольшой пример
это Javascript
<script type = "text/javascript">
var ctrl = document.getElementById('<%= btmRocp.ClientID %>');
function ShowPanel(control)
{
alert('<%= btmRocp.ClientID %>');
ctrl.disabled = true;
}
</script>
Это Аккордеан
<form id = "form1" runat = "server">
<div>
<asp:ScriptManager ID = "ScriptManager1" runat = "server">
</asp:ScriptManager>
<cc1:Accordion ID = "MyAccordion"
runat = "Server"
SelectedIndex = "0"
>
<Panes>
<cc1:AccordionPane ID = "accordianPane0" runat=server>
<Header>Create New Report </Header>
<Content>a
<asp:Button ID = "Button1" onmouseup = "ShowPanel('') " runat = "server" Text = "Button" />
<asp:Button ID = "btmRocp" runat = "server" Text = "Button" />
</Content>
</cc1:AccordionPane>
<cc1:AccordionPane ID = "accordianPane1" runat=server>
<Header>Create New Report </Header>
<Content>b</Content>
</cc1:AccordionPane>
</Panes>
</cc1:Accordion>
Я хотел бы знать, что я делаю не так, в предупреждении отображается правильный идентификатор.
Если я делаю что-то, где я передаю "этот" объект функции, я могу отключить эту кнопку, но мне действительно нужно, чтобы она отключилась или скрыла как 10 объектов
Есть у кого-нибудь идеи?
Пример кода на http://www.riconllc.com/accordian.zip
Я пытаюсь получить доступ к своим элементам управления, которые находятся в аккордеоне, из javascript, чтобы контролировать их состояние, имеет ли это смысл?
Просматривали ли вы исходный код страницы, отображаемый в браузере, чтобы убедиться, что ClientID действительно соответствует HTML?
да, я сделал это, и они совпадают.
хорошо, я только что загрузил свой образец кода на riconllc.com/accordian.zip Если у кого-нибудь есть секунда, чтобы помочь мне.





Какое состояние по умолчанию у Accordion? рухнул? Я понятия не имею, как работает Accordion, но подозреваю, что он модифицирует HTML DOM таким образом, что при первой загрузке страницы «btmRocp» фактически не присутствует на самой странице, пока не станет «видимым». То есть он может вводить элементы управления на страницу и из нее в зависимости от статуса аккордеона.
Лучше всего для выяснения этого поведения вставить «отладчик;» операторы на вашу страницу в соответствующие моменты, чтобы проверить работающую DOM в эти моменты времени.
<textbox id = "debugbox" onblur = "this.value = eval(this.value);"></textbox>
Это хороший способ обезьянничать со сценарием на вашей странице.
хм хорошо, значение в текстовом поле "undefined"
Вы можете объяснить, чего на самом деле пытаетесь достичь ??