티스토리 뷰

IT 관련 이야기/Sharepoint

Delegate Control

종소리도깨비 2012.06.27 15:07

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 사이트에 가면 설명 잘되어 있으나 글로만 설명되어 있고 해서 참고하라고 스샷 몇장 남김.

   

  1. 프로젝트 생성

   

   

   

   

   

  1. 추가할 프로그램 클래스 생성

   

   

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);

   

}

   

}

 

}

  1. 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" />

   

머 이렇게 됨. 훨씬 쉬어졌다는거….

   

적절히 알아서 사용하면 되겠음.

   

끝…..

댓글