.net手风琴让我有问题

时间:2008-12-18 17:57:00

标签: asp.net javascript ajax accordion

我根据网页中的操作显示,隐藏,启用和禁用了一堆控件。一切顺利,直到我把它们变成手风琴。现在我无法让Javascript能够更新他们的状态。我有一个小例子

这是Javascript

 <script type="text/javascript">
  var ctrl = document.getElementById('<%= btmRocp.ClientID %>');

    function ShowPanel(control)
{
    alert('<%= btmRocp.ClientID %>');
    ctrl.disabled = true;
}
</script>   

这是Accordian

 <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

的示例代码

1 个答案:

答案 0 :(得分:0)

手风琴的默认状态是什么?倒塌?我不知道Accordion是如何工作的,但是我怀疑它正在修改HTML DOM,这样当页面首次加载“btmRocp”时,它实际上并不存在于页面本身上,直到它变得“可见”。也就是说,它可能是根据手风琴状态将控件注入和注出页面。

找出这种行为最好的办法是插入“调试器”;在适当的位置对您的页面进行语句,以便在这些时间点检查实时DOM。

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

也是在页面上使用脚本的好方法。