Sharepoint 페이지에 헤드 영역에 AdditionalPageHead 를 통해 스크립트를 추가할 수 있다.
This example shows the basic process of creating and implementing a delegate control. The delegate control resides in the AdditionalPageHead control on the page. It registers some ECMAScript (JavaScript, JScript) on the page.
원본 위치 <http://msdn.microsoft.com/en-us/library/ms470880.aspx>
사실 이 부분은 굳이 프로그램으로 처리하지 않고 마스터 페이지를 수정해서 처리할 수도 있겠지만
그때 그때 전략적인 선택에 따라서 처리 할 수도 있으리라 본다.
원본 MSDN 사이트에 가면 설명 잘되어 있으나 글로만 설명되어 있고 해서 참고하라고 스샷 몇장 남김.
- 프로젝트 생성
- 추가할 프로그램 클래스 생성
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
namespace Delegate_Control
{
class Delegate:WebControl
{
protected override void OnLoad(EventArgs e)
{
string helloAlert = "alert('Hello, world!');";
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "popup", helloAlert, true);
}
}
}
- Feature 생성 등록
Element.xml 에 콘트롤을 등록한다.
<Control Id="AdditionalPageHead" ControlAssembly="DelegateControl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=해당 어셈블리 토큰값" ControlClass="Delegate_Control.Delegate"/>
그리고 SafeControl 등록해야 함.
SafeControl 등록하는 부분이 항상 헷갈리니 위 아래 그림 잘 참고 해서 수정하면 됨.
Deploy 하면 다음과 같이 나옴.
끝낼까 하다가 한가지 팁을 더 남기면…..
일단 이까지가 MSDN 의 방법이나 ascx로 그냥 HTML 쓰듯이 등록 하는 방법이 더 쉬울것 같아서 … 다시 .
ASCX 작성 할 거니 ControlTemplate 맵핑폴더 추가함.
CustomDelegate.ascx 추가
추가된 ascx 파일의 소스에 아래 스크립트를 추가
<script type="text/javascript">
alert("Client side Popup")
</script>
추가된 콘트롤을 위에서 만들어 놓은 feature 에 추가
Delegate의 Element.xml 에 다음과 같이 추가함
<Control Id="AdditionalPageHead" Sequence="90" ControlSrc="~/_ControlTemplates/customDelegate.ascx" />
머 이렇게 됨. 훨씬 쉬어졌다는거….
적절히 알아서 사용하면 되겠음.
끝…..
'IT 관련 이야기 > Sharepoint2' 카테고리의 다른 글
visual studio 2012 sharepoint remote deployment(원격 배포) (0) | 2012.07.12 |
---|---|
Visual Studio 2012 에서 Sharepoint 2010 List 개발하기 (0) | 2012.07.12 |
New caml query designer (0) | 2012.05.17 |
Sharepoint 2010 SP1 설치시 알려진 문제 (0) | 2012.04.30 |
101 가지 sharepoint Code Sample (0) | 2012.04.17 |