나는 accordian의 3 가지 다른 아코디언 창에서 다른 ASP 컨트롤에 대해 ValidatorCalloutExtender를 사용하고 있습니다. 오류가 발생하고 다른 accordian-pane 헤더를 클릭하면 오류 메시지가 브라우저의 왼쪽 상단에 표시됩니다. 이 오류 메시지를 숨기거나 페이드 아웃하는 방법은 무엇입니까?accordator에서 ValidatorCalloutExtender를 숨기거나 희미하게하는 방법
답변
나는 이것을 지금까지 (4 개월?) 알아 냈다고 가정합니다. 그러나 저는 이것을 재미있는 도전으로 여기며 유효성 검사기를 다루었습니다.
해결 방법은 아코디언 컨트롤의 SelectedIndexChanged 이벤트에 연결하여 숨겨진 창에 대한 모든 유효성 검사기를 사용하지 않도록 설정하는 것입니다.
먼저 아코디언 컨트롤에 후크를 추가해야합니다. 이것은 jQuery를 사용한다 (나는 이것을 성취하는 다른 방법을 모른다). 변수는 accordian 함수의 클라이언트 ID를 포함합니다.
var accordianId = 'MyAccordion';
function pageLoad()
{
var accCtrl = $find(accordianId + '_AccordionExtender');
accCtrl.add_selectedIndexChanged(onAccordionPaneChanged);
}
물론 클라이언트 측 (자바 스크립트)입니다.
:그 후, 우리는 아코디언 창에서 모든 div의를 통해 루프에 onAccordionPaneChanged 방법을 만들고 숨겨진 된 DIV와 관련된 모든 유효성 검사기를 해제 (그리고 새롭게 문을 연 DIV에 대한 모든 유효성 검사기를 사용) 할 필요가
function onAccordionPaneChanged(sender, eventArgs)
{
var indexSelectedPane = sender.get_SelectedIndex();
// There are two divs per "pane": 1 Header, 1 Content
// That would make the DIV odd, but there's an additional
// hidden element at the front, so it's the Even item.
var indexContentDiv = (indexSelectedPane * 2) + 2;
var accordianControl = document.getElementById(accordianId);
var i, boolEnable;
for(i = 0; i < accordianControl.children.length; i++)
{
//Odd number, this must be a Content section
boolEnable = false;
if (i == indexContentDiv)
{
boolEnable = true;
}
EnableDisableValidators(accordianControl.children[i], boolEnable);
}
}
위 내용에서는 창당 두 개의 DIV를 언급합니다. 어떤 일이 발생하는지는 accordian 컨트롤이 창당 두 개의 DIV를 만듭니다. 하나는 헤더 용이고 다른 하나는 바닥 글용입니다. 모든 하위 항목을 순환하면 다른 모든 DIV가 콘텐츠를 포함하는 DIV가됩니다. 따라서 콘텐츠 섹션에서만 모든 유효성 검사기를 사용하지 않으려면 위의 내용이 "odd"div이고 콘텐츠 div는 (i % 2 == 1)이라는 것을 확인했습니다.
마지막으로 EnableDisableValidators 함수는 주어진 DIV를 가져와 모든 페이지의 유효성 검사기가이 DIV 내의 컨트롤인지 확인합니다. 이 DIV 안에 있으면 전달 된 값 (이 DIV가 선택된 DIV인지 여부에 따라 결정됨)에 따라 유효성 검사기를 사용하거나 사용하지 않도록 설정합니다. 당신이 사업부 내의 모든 컨트롤을 통해 검색 할 수 있도록
는 불행하게도, 아코디언 컨트롤에 의해 생성 된 div의 구체적function EnableDisableValidators(divParent, setEnabled)
{
var childValidator;
var j;
var k;
if (divParent.children == null || divParent.children.length == 0)
{
return;
}
// Check all the validators to see if they're one of the children
for (j = 0; j < Page_Validators.length; j++)
{
// Check all the children of the DIV for the given validator
for (k = 0; k < divParent.children.length; k++)
{
if (FindControlRecursive(divParent, Page_Validators[j].id) != null)
{
ValidatorEnable(Page_Validators[j], setEnabled);
}
}
}
}
또 다른 몰락은 우리가 발견해야한다는 것입니다, ID를 가지고 있지 않습니다 DIV 내의 모든 아이들을 재귀를 사용해야합니다. 여기에 위의 간단한 기능이 있습니다.
function FindControlRecursive(parentNode, childID)
{
var l;
var retChild;
for (l = 0; l < parentNode.children.length; l++)
{
if(parentNode.children[l].id != null &&
parentNode.children[l].id == childID)
{
return parentNode.children[l];
}
else
{
retChild = FindControlRecursive(parentNode.children[l], childID);
if (retChild != null)
{
return retChild;
}
}
}
return null;
}
이 방법에는 몇 가지 문제가 있습니다. 첫째, 양식을 제출할 때 현재 창에 표시되는 유효성 검사기 만 오류를 게시합니다. 모든 숨겨진 유효성 검사기는 표시되지 않습니다. 이 문제를 해결하려면 제출하기 전에 모든 Page_Validators를 순환하는 제출 버튼의 기능 "onclick"을 추가하고 제출할 수 있습니다. (그 시점에서) 유효성 검사기를 점검해야 할 수도 있습니다. 그러나 그것은 완전히 다른 질문입니다. ;)
또 다른 문제점은 첨부 된 컨트롤을 클릭 할 때 익스텐더가 표시되는 것입니다. 이 기능을 사용하여 필요한 필드를 표시 할 수 있도록 설정할 때 유효성 검사기 기능을 호출 할 수 있습니다. (다만 가능한 해결책.) 그러나 다시, 그것은 완전히 별개의 질문입니다!
잘하면 도움이됩니다.
- 1. 배경을 희미하게하는 방법
- 2. jquery로 배경을 희미하게하는 방법
- 3. 안드로이드에서 TextView의 가장자리를 희미하게하는 방법?
- 4. ValidatorCalloutExtender를 동적으로 배치 할 수 있습니까?
- 5. xml에 정의 된 프래그먼트를 숨기거나 표시하는 방법
- 6. Google 폐쇄에서 dom 요소를 숨기거나 표시하는 방법
- 7. PHP 디자이너에서 줄을 숨기거나 표시하는 방법 IDE
- 8. 주변 사이트를 희미하게하는 JS 팝업 요소
- 9. 자바 스크립트를 사용하여 이미지를 희미하게하는 방법은 무엇입니까?
- 10. 앵커를 동적으로 숨기거나 표시합니다.
- 11. GWT - 런타임시 Div를 숨기거나 보여주기
- 12. 임의의 문자열을 숨기거나 제거 하시겠습니까?
- 13. WordPress에서 범주를 숨기거나 비활성화하려면 어떻게합니까?
- 14. 파일의 URL을 숨기거나 암호화 하시겠습니까?
- 15. 성능을 위해 uiLabels를 숨기거나 제거하십시오.
- 16. UIimageview를 숨기거나 표시하는 방법은 무엇입니까?
- 17. iphone mkmapview nagivationbar을 숨기거나 제거합니다.
- 18. GWT 체크 박스가 위젯을 숨기거나 보여줍니다.
- 19. Google Plus One - 사용자 정의 이미지를 숨기거나 사용하는 방법
- 20. 탄소를 사용하여 제목 표시 줄을 숨기거나 표시하는 방법
- 21. 다시 게시하지 않고 CustomValidation 유효성 검사 메시지를 숨기거나 표시하는 방법
- 22. UIWEBVIEW에서 웹 사이트 변경을 기반으로 버튼을 숨기거나 표시하는 방법
- 23. 두 열의 셀 선택을 숨기거나 문자로 대체하는 방법을 문의하는 방법
- 24. Mac OS X에서 메뉴 항목을 숨기거나 해제하는 방법
- 25. 유효성 검사 컨트롤과 함께 ValidatorCalloutExtender를 사용하는 동안 여러 개의 오류 메시지가 표시되는 것을 방지하려면 어떻게해야합니까?
- 26. 파이어 폭스에서 셀 크기를 숨기거나 감추기
- 27. 어떻게 NSWindowController와 뷰를 숨기거나 닫을 수 있습니까?
- 28. 앱 데이터가 파일을 숨기거나 가상 폴더를 만드나요?
- 29. nginx rewrite를 사용하여 URL을 숨기거나 정리합니까?
- 30. 탭 표시 줄 탭을 숨기거나 비활성화 하시겠습니까?