.NET 아코디언으로 인해 문제가 발생합니다
-
22-08-2019 - |
문제
웹 페이지의 동작을 기반으로 표시, 숨기기, 활성화 및 비활성화 된 많은 컨트롤이있었습니다. 내가 아코디언에 넣을 때까지 모든 것이 효과가있었습니다. 이제 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>
나는 여기서 내가 무엇을 잘못하고 있는지 알고 싶습니다. 경고는 올바른 ID를 인쇄합니다.
"이"객체를 함수에 전달하는 곳에서 무언가를하면 해당 버튼을 비활성화 할 수 있지만 실제로 비활성화하거나 10 개 객체처럼 숨기려면 필요합니다.
누구든지 아이디어가 있습니까?
해결책
아코디언의 기본 상태는 무엇입니까? 무너 졌나요? 나는 아코디언이 어떻게 작동하는지 모르겠지만, 페이지가 처음로드 될 때 "btmrocp"가 실제로 페이지 자체에 존재하지 않도록 "보이실"이 될 때까지 HTML dom을 수정하고 있다고 생각합니다. 즉, 아코디언 상태에 따라 페이지로 컨트롤을 주입 할 수 있습니다.
이 동작을 알아내는 가장 좋은 방법은 "디버거"를 삽입하는 것입니다. 적절한 지점에서 페이지에 대한 명세서를 작성하여 해당 시점에서 라이브 DOM을 검사합니다.
<textbox id="debugbox" onblur="this.value = eval(this.value);"></textbox>
페이지에 스크립트를 사용하여 원숭이를 만드는 좋은 방법입니다.
제휴하지 않습니다 StackOverflow