.net Аккордеон вызывает у меня проблемы - PullRequest
0 голосов
/ 18 декабря 2008

У меня было несколько элементов управления, которые я отображал, скрывал, включал и отключал в зависимости от действий на веб-странице. Все работало, пока я не положил их в аккордеон. Теперь я не могу заставить 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>

Мне бы очень хотелось узнать, что я делаю не так, как здесь, Alert распечатывает правильное удостоверение личности.

Если я что-то делаю, когда передаю объект «this» в функцию, я могу отключить эту кнопку, но мне действительно нужно отключить или скрыть, как 10 объектов

У кого-нибудь есть идея?

Пример кода на http://www.riconllc.com/accordian.zip

1 Ответ

0 голосов
/ 18 декабря 2008

Каково состояние по умолчанию Аккордеона? разрушилась? Я понятия не имею, как работает Аккордеон, но я подозреваю, что он модифицирует HTML DOM так, что при первой загрузке страницы «btmRocp» фактически не присутствует на самой странице, пока он не станет «видимым». Это значит, что он может вводить элементы управления на страницу и из нее, основываясь на статусе аккордеона.

Лучше всего для выяснения этого поведения вставить "отладчик"; заявления на вашей странице в соответствующие моменты, чтобы проверить живую DOM в эти моменты времени.

<textbox id="debugbox" onblur="this.value = eval(this.value);"></textbox>

Это также хороший способ обезьяны со сценарием на вашей странице.

...