2012-11-25 5 views
1

클릭하면 드롭 다운 목록이 표시되는 확인란이 있습니다. 나는 단지 그들이 입장을 바꾸기를 원한다.Qcodo 요소의 위치 전환

문제는 내가 PHP를 사용하여 위치를 변경할 때, 그것은 아약스 오류를 throw합니다. 각 div는 동적 div id에서 호출되기 때문에 실제로 CSS를 사용하여 변경할 수는 없습니다.

CSS에서 nth-child를 사용하여 위쪽 여백을 만드는 방법을 살펴 보았지만 그 중 한 가지만 해본 적이 없었습니다.

지금이 체크 박스는 드롭 다운의 가시성을 토글하지만 체크 박스는 드롭 다운이 나타나는 위치 아래입니다. 나는 또 다른 접근법은 어떻게 든 자바 스크립트를 사용하는 것 같다 ... 나는 뭔가를 놓친 건가? 왜 순서가

$ret['reclength'] = new QListBox($objParent); 
    $ret['length']->Name = _sp('Item Name'); 

    $ret['length']->AddItem("weekly", "7"); 
    $ret['length']->AddItem("bi-weekly","14"); 
    $ret['length']->AddItem("Monthly","30"); 
    $ret['length']->Display=false;  

    $ret['checkbox'] = new QCheckbox($objParent); 
    $ret['checkbox']->Name = _sp('checkbox name'); 
    $ret['checkbox']->AddAction(new QClickEvent(), new QToggleDisplayAction($ret['length'])); 

    return $ret; 

답변

0

렌더링 순서와 IE6/7 버그도 있습니다 것입니다 당신의 컨트롤 부모 인 $ objParent에 의존한다. $ objParent가 QForm이면 QForms 템플릿에서 순서를 전환하면됩니다. 그러나 당신이 목격하고있는 행동으로 나는 $ objParent가 QPanel이라고 가정하고 있습니다. 이 경우 QPanel에 템플릿을 추가하고 해당 템플릿의 컨트롤을 원하는 순서대로 렌더링해야합니다. AutoRenderChildren = true를 시도해 볼 수는 있지만 컨트롤은 QPanel의 자식으로 위임 된 순서대로 렌더링됩니다.

CSS를 사용하여 위치를 지정하려면 컨트롤에 ID를 추가 할 수 있습니다. 그렇게하면 CSS에서 참조 할 수 있고 선택기의 모호성을 피할 수 있습니다. 당신은 그냥 myControlId 페이지에 고유 있는지 확인

$ret['reclength'] = new QListBox($objParent, "myControlId"); 

처럼 생성자에 두 번째 매개 변수를 추가해야합니다. #myControlId를 사용하여 CSS에서 액세스 할 수 있습니다.

또 다른 옵션은 QListBox 컨트롤을 인스턴스화 할 때 부모를 $ this로 설정 한 다음 QCheckbox를 인스턴스화 한 후 QListBox의 부모를 $ objParent로 설정하는 것입니다. 이것을 테스트하지는 않았지만 작동해야합니다. QCubed Examples site에서 작동중인 QForms의 예를 볼 수 없습니다. 코드는 다음과 같습니다. 이것은 테스트되지 않았지만 작동해야합니다.

$ret['reclength'] = new QListBox($this); 
$ret['length']->Name = _sp('Item Name'); 

$ret['length']->AddItem("weekly", "7"); 
$ret['length']->AddItem("bi-weekly","14"); 
$ret['length']->AddItem("Monthly","30"); 
$ret['length']->Display=false;  

$ret['checkbox'] = new QCheckbox($objParent); 
$ret['checkbox']->Name = _sp('checkbox name'); 
$ret['checkbox']->AddAction(new QClickEvent(), new QToggleDisplayAction($ret['length'])); 

$ret['reclength']->SetParentControl($objParent); 

return $ret; 
0

를 교환 할 수 없습니다 나는 아마도 밖으로의 순서 문제가 올바르게 표시 어떻게 순서가 변경됩니다을 주문하기 때문에,이, 같은 템플릿 파일이 어떻게 보이는지 모르겠어요 . 그러나 그것 없이도 주문에 대해 뭔가를 할 수 있습니다. 간단하게 z-index를 사용하고 QListbox에 CSS 클래스를 추가

$ret['length']->CssClass = "mydropdown"; 

그리고이 CSS에 :

.mydropdown { 
    z-index: 9999; 
} 

그러나 z-index

관련 문제