저 하늘의 구름처럼~

실버라이트 2.0 닷넷 함수를 자바스크립트 코드에서 호출하기 본문

실버라이트

실버라이트 2.0 닷넷 함수를 자바스크립트 코드에서 호출하기

강백호v 2008. 9. 7. 15:39

실버라이트 샘플 동영상 가의 중에서 CALLING .NET FUNCTIONS FROM JAVASCRIPT CODE
를 보고 간단히 정리 하여 둔다.
http://silverlight.net/learn/learnvideo.aspx?video=66733 이곳으로 가면, 샘플 동영상 강의를 볼수 있을 것이다. 지금 현재로는 소스코드는 첨부 되어 있지 않아 직접 따라 보면서 하거나,
내가 직접 따라만든 코드 파일을 보면서 하면 될것이다.
실버라이트 2.0 에서 자바 스크립트를 사용하려면, 클래스에는 [ScriptableTyep] 메소드, 멤버 함수에는
[ScriptableMember]키워드를 추가 시켜주어야만 한다.

1.MyScriptableObject.cs 파일을 실버라이트 프로젝트에 추가 시킨다.
  [ScriptableType]
    public class MyScriptalbeObject
    {
        [ScriptableMember]
        public int Add(int x , int y)
        {
            return ( x + y );
        }
    }
위와 같이 코드를 추가 시킨다.
- [ScriptableType]은 using System.Windows.Browser;을 추가 시켜주어야 한다.
2. Page.xaml.cs 파일에
  public Page()
        {
            InitializeComponent();
            this.Loaded += OnLoaded;
        }
        void OnLoaded(object sender, RoutedEventArgs e)
        {
            MyScriptalbeObject instance = new MyScriptalbeObject();
            HtmlPage.RegisterScriptableObject("myObject", instance);
        }
와 같이 코드를 추가 시켜준다.
자바스크립트에서 사용하기 위해 인스턴스를 생성하고,등록 시키는 과정이다.

3. xxx TestPage.aspx를 열어 코드를 추가 시킨다.
<input type ="button" value ="Click Me" onclick="OnClick()" /> 버튼을 하나 생성한다.
<head> 구문 사이에 자바 펑션을 하나 추가 시켜준다.


   <script type ="text/javascript"> //자바 스크립트 사용.
        function OnClick()
        {
         var control = $get("Xaml1");  //실버라이트 ID에 있는 Xaml명을 통해 ID 값을 얻어온다.
         var content = control.content;
         var netObject = content.myObject;          
         var result = netObject.Add(100,400);
         alert(result);
        }
    </script>