我根据网页中的操作显示,隐藏,启用和禁用了一堆控件。一切顺利,直到我把它们变成手风琴。现在我无法让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个对象
有没有人有想法?
的示例代码答案 0 :(得分:0)
手风琴的默认状态是什么?倒塌?我不知道Accordion是如何工作的,但是我怀疑它正在修改HTML DOM,这样当页面首次加载“btmRocp”时,它实际上并不存在于页面本身上,直到它变得“可见”。也就是说,它可能是根据手风琴状态将控件注入和注出页面。
找出这种行为最好的办法是插入“调试器”;在适当的位置对您的页面进行语句,以便在这些时间点检查实时DOM。
<textbox id="debugbox" onblur="this.value = eval(this.value);"></textbox>
也是在页面上使用脚本的好方法。