꽁수 방법입니다. MGRID는 width를 자동으로 바꾸지안키때문에 DB상에서 불러오는 해더컬럼명이 길경우
짤리는 그런증상이 있지요..컬럼의 갯수가 만을경우 후속으로 오는컬럼 위치를 전부 수정하는것도 일이구요..
하지만 머리를 조금쓰면 간단하게 해결됩니다. 그리드의 ColumnInfo 를 활용하면됩니다.
아시다시피 ColumnInfo에는 해더정보및 컬럼정보등등이 들어갑니다. 그렇키 때문에
바인딩된 데이터셋의 로우만큼 포문을 돌며 ColumnInfo정보 스트링 구문을 만들어내는게 가능합니다.
물론 그리기위한 정보는 데이터셋이 들고와야하는건 알겁니다.
<div id="auto_width" style="position: absolute;visibility: hidden;height: auto;width: auto"></div>이런객채를 만들어둡니다. 해더문자길이는 클라이언트마다(폰트)마다 다르기때문에 문자length로는 길이를 알수없습니다.
var fontSize=MGrids.currentStyle.fontSize; --기본폰트크기를 가져옵니다(CSS에 정의된크기)
var startleft=0;
var startright=0;
var info='';
for(){
document.getElementById("auto_width").innerText=this.NameValue(i,"BUTTON_NM"); --해더의택스트컬럼값 을 히든객체에 집어넣코
var text_width = document.getElementById("auto_width");--히든객채를 가져와서
text_width.style.fontSize = fontSize; --히든객채의 폰트사이즈를 기본으로 변경한후
var width = (text_width.clientWidth + 1);--히든객채의 넓이를 가져옵니다.
startright=startleft+(parseInt(fontSize)+width+parseInt(fontSize));--객채의넓이와 폰트의 pt값을이용 right값을 구해냅니다.
info+='<COLUMN id="test" refcolid="test">';
info+='<HEADER left="'+startleft+'" top="0" right="'+startright+'" fontsize="'+fontSize+'">';
info+='<VIEW left="'+startleft+'" top="0" right="'+startright+'"/>';
info+='<CHILD type="check"/>';
info+='</COLUMN>';
startleft=startright;-- right에left값을 복사합니다.
}
info +='</COLUMNINFO>';
MGrids.ColumnInfo=info
이런방식으로 info객채를 따로 그려주면 데이터셋은 알아서 바인딩이 되므로 해더의 사이즈를 더블클릭해서 넓혀줄필요가 없어집니다.