0

Web ページのアクションに基づいて、表示、非表示、有効化、無効化するコントロールがたくさんありました。それらをアコーディオンに入れるまで、すべてが機能しました。現在、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>

ここで私が間違っていることを知りたいのですが、アラートは正しい ID を出力します。

「this」オブジェクトを関数に渡す場所で何かを行うと、そのボタンを無効にできますが、無効にするか、10個のオブジェクトのように非表示にする必要があります

誰にもアイデアがありますか?

http://www.riconllc.com/accordian.zipのサンプル コード

4

1 に答える 1

0

アコーディオンのデフォルトの状態は何ですか?崩壊?アコーディオンがどのように機能するかはわかりませんが、ページが最初に読み込まれたときに「btmRocp」が「表示」されるまで実際にはページ自体に存在しないようにHTMLDOMを変更しているのではないかと思います。つまり、アコーディオンのステータスに基づいて、ページの内外にコントロールを挿入している可能性があります。

この動作を理解するための最善の策は、「デバッガー」を挿入することです。適切な時点でページにステートメントを挿入し、それらの時点でライブDOMを検査します。

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

あなたのページにもスクリプトを使ってサルをするのに良い方法です。

于 2008-12-18T19:07:22.973 に答える