본문 바로가기

SharePoint 2010/Development

Sharepoint 2010 Social Collaboration Colleagues WebPart Row 변경 방법

 

마이 사이트 쪽을 개발하다가 기존의 Colleagues 웹파트를 추가하고 사용자를 추가하고 난 후 사용자가 하나의 Row로 보이는 것이 아니라 웹파트의 크기 만큼 셀로 보이는 문제가 발생하였습니다.

 

일단 웹파트를 입력한 후 페이지에서 보게 되면 아래와 같이 보이게 됩니다.

 

웹파트 속성을 보게 되면 속성에는 몇 Row를 보이게 할 것인가 라는 속성과 이름이 보일지 말지 결정하는 속성 두가지 밖에 없습니다.

 

이게 셀단위로 증가 되는 경우는 폭이 80 이상이 경우 80으로 나눠서 샐을 만들고 데이터를 입력하는 형태로 개발되어 있습니다.

웹파트에서요…

 

개발되어 있는 곳도 portal.js에서 구형되어 있어 스크립트로만 구현하면 됩니다.

저는 아래와 같이 만들었으며 사이즈 계산하는 곳만 잘 해 놓으시면 될 것 같습니다.

 

소스는 아래와 같습니다.

저는 person.aspx에 넣어 놓았으며, portal.js 보다 아래 쪽에서만 구현되면 됩니다.

/// portal.js override
function MySite_RenderPeople(h, a, c, d, j) {
	ULSX84: ;
	if (j) {
		var k = function () {
			ULSX84: ;
			MySite_RenderPeople(h, a, c, d, false)
		};
		AttachEvent("domLoad", function () {
			ULSX84: ;
			setTimeout(k, 50)
		});

		return
	}

	if (c < 1)
		c = 1;

	// var i = document.getElementById(h), f = i.clientWidth, e = d ? 80 : 55, b = Math.floor(f / e);
	var i = document.getElementById(h), f = i.clientWidth, e = d ? 230 : 55, b = Math.floor(f / e);
	if (b > a.length) {
		b = a.length;
		e = Math.floor(f / b)
	}
	var g = Math.min(a.length, c * b);
	_MySite_RenderPeople(i, a, 0, g, b, e, d, true);

	return g == a.length
}

MySite_RenderPeople 메소드에서 위의 소스에 주석되어 있는 부분에 80을 원하는 넓이 값으로만 변경하시면 됩니다.
이상입니다.
 
고맙습니다.