2013-03-26 3 views

답변

1

position의 속성을 xp:viewColumnHeader에 추가하려면 attrs 속성을 사용하면됩니다 (8.5.3에서 작동). 코드는 다음과 같이 보일 것입니다 :

<xp:viewColumnHeader ......> 
    <xp:this.attrs> 
     <xp:attr name="position" value="fixed"></xp:attr> 
    </xp:this.attrs> 
</xp:viewColumnHeader> 

그러나 나는 혼자서 그 트릭을 수행 할 것이라고 생각하지 않습니다. 얼마 전 나는 make floating Banner, Title Bar and Place Bar in Application Layout control of Extension Library으로 CSS 스 니펫을 만들었습니다. 당신은 그 아이디어를 얻을 수 있습니다.

0

요일 전 테이블 머리글을 고정시킬 수있는 jQuery 코드를 보았습니다. 그게 어디 있었는지 기억하지 마라. 네가 거기 있어야한다는 것을 도와 줄 수있는 무엇인가.

1

예, 가능하지만 일부 JavaScript 코딩이 필요합니다. 최근에 다음 코드를 사용하여 고객을 위해이 문제를 해결했습니다. 기본 아이디어는 열의 너비를 TD의 첫 번째 행에서 빼내어 TH에 적용한 다음 나중에 고정 할 TH를 설정하는 것입니다. 부분 업데이트 후에도이 기능을 실행해야합니다. 행운을 빕니다.

var fixTableHeaders = function() { 
    var thead = dojo.query("thead")[0]; 
    if (!thead) return; 
    thead.style.position = "static"; 
    var THs = dojo.query('.xspDataTable th'); 
    var firstTDs = dojo.query('.xspDataTable tr:first-child td'); 
    var secondTDs = null; 
    if (firstTDs.length < 2) { 
     // categorized view, first line is a category with only one cell 
     // -> we need the second line 
     secondTDs = dojo.query('.xspDataTable tr:nth-child(2) td');   
    } 
    var w = 0; 
    for (var i = 0; i < THs.length; i++) { 
      w = dojo.coords(THs[i], true).w;     
      // console.log(i+" w="+w); 
      THs[i].style.width = (w)+"px"; 
      if (firstTDs[i]) { 
       //if (secondTDs && secondTDs[i]) secondTDs[i].style.width = w+"px"; 
       //else firstTDs[i].style.width = w+"px"; 
       firstTDs[i].style.paddingTop = "3em"; 
      } 
    } 
    thead.style.position = "fixed";       
}  
dojo.addOnLoad(fixTableHeaders); 
+0

효과가있었습니다. 방금 클래스 이름을'xspDataTableViewPanel'으로 바꿨습니다. 감사 :) – Naveen

관련 문제