실버라이트 팁

[실버라이트 스터디 3주차] 데이터그리드의 Row Detail과 Javascript Access #2 시선 평점: 없음 조회: 3403

 

2. Javascript Access

 

  # 이 강좌는 실버라이트를 구 프로젝트에서 응용할때 사용하세요 .

    이 강좌를 배우시더라도 실제 새로하는 프로젝트에서는 가급적이면 사용하지

    않았으면 합니다.

  자바스크립트와 실버라이트의 혼합사용으로 인해서 차후 개발자간의 중복수정이
 생길 수도 잇고 자바스크립트 부분과 실버라이트부분을 맞추기 위해서 많은 오류를

범할 수도 있습니다.  그러므로 이 강좌는 이전의 프로젝트에서 실버라이트를 추가해서

사용할때만 사용하는 것이 바람직하다고 생각합니다.

 

1) 처음 실버라이트에서의 준비

    (1) 클래스를  [ScriptableType]로 정의 하여 자바스크립트와 통신이 가능하도록 설정한다.

    (2) 그리고 HtmlPage.RegisterScriptableObject("SilverlightApp", this)라고 선언하여

          자바스크립트에서 실버라이트 어플리케이션을 사용가능하도록 설정

 

   ## 예제 ConverterTest에서 App.xaml.cs부분##

   [ScriptableType] 
    public partial class App : Application
    {

        public App()
        {
            :

            :

            InitializeComponent();

            HtmlPage.RegisterScriptableObject("SilverlightApp", this); 

        }

 

  2)그리고 실버라이트 어플리케이션이 정의된 Html페이지에서 실버라이트 오브젝트의 ID를 정의한다.

     ( 예제 ConverterTest.Web프로젝트의 ConverterTestTestPage.aspx)

 

       <object id="ConverterTest" data="data:application/x-silverlight-2,"

                                                                   type="application/x-silverlight-2" width="600px" height="500px">
          <param name="source" value="ClientBin/ConverterTest.xap"/>

 

   3) 이제 자바스크립트로 테스트해보면 실버라이트 어플리케이션을 확인 가능합니다.

     (1) document.getElementById('ConverterTest')는 앞에서 선언한 ID의 오브젝트를 호출하는 부분입니다.

     (2) _SilverContents.Content.SilverlightApp 이 부분은 실버라이트에서 HtmlPage.RegisterScriptableObject  

           ("SilverlightApp", this)로 선언한 부분

        //예제 ConverterTest.Web프로젝트의 ConverterTestTestPage.aspx에서 정의된 자바스크립트 ####       

        var _SilverContents;

        function OnLoaded(sender,e) {
            _SilverContents = document.getElementById('ConverterTest');

            if (_SilverContents == null) {
                alert('실버라이트 컨트롤을 로드할 수 없습니다.');
            }
            else
                _SilverContents =_SilverContents.Content.SilverlightApp;
        }

 

    4)그리고 호출하고자 하는 실버라이트의 함수를 ScriptableMember로 정의 합니다.

 

         ## 예제 ConverterTest에서 App.xaml.cs부분## 
        [ScriptableMember]
        public void ImageInsert()
        {
            _MainPage.Insert();
        }

 

    5) 이제 마지막으로 자바 스크립트에서 호출을 하면 이전과 같이 이미지 추가를 위한 창이 나타납니다.

 

       function btInsertClick() {
            _SilverContents.ImageInsert();
        }  

 

      6) 자바스크립트에서 값을 주고 받을때는 다음과 같이 합니다.

 

         (1) 자바스크립트에서 호출을 합니다.

//예제 ConverterTest.Web프로젝트의 ConverterTestTestPage.aspx에서 정의된 자바스크립트 ####

        function btTestClick() {

            var _items = new Array();
            _items[0] = "111123";
            _items[1] = "14123123141123";
            _items[2] = "14413123";
            _items[3] = "55511123";
            _items[4] = "aaaaaaa";

 

            var _result = _SilverContents.JavaScriptTest(_items);

 

            alert("[0]:" + _result[0] + '\n'
                 + "[1]:" + _result[1] + '\n'
                 + "[2]:" + _result[2] + '\n'
                 + "[3]:" + _result[3] + '\n'
                 + "[4]:" + _result[4] + '\n');
        }
        

 

       (2) 그리고 실버라이트에서 처리하는 부분

        ## 예제 ConverterTest에서 App.xaml.cs부분##

        [ScriptableMember]
        public List<Int64> JavaScriptTest(ScriptObject Items)
        {
            var _items = Items.ConvertTo<List<string>>();

            List<Int64> _result = new List<Int64>();
           
            _items.ForEach(itm =>
            {
                try
                {
                    _result.Add(Convert.ToInt64(itm));
                }
                catch (Exception)
                {
                    _result.Add(-1);
                }
            });

            return _result;
        }

      

   

태그 : 실버라이트스터디
작성자 정보
시선
Level 39
 [EXP.40/80]

메일:  비공개
글등록 +12 716 덧글등록 +3 113
자기소개
그냥 저냥 개발 ㅠ
글 공유하기 |
  tweet facebook
2011-07-19 오후 5:31:32
나도한마디
글리스트
실버라이트 5 살펴보기 강좌 (10 Laps around Silverlight 5)[2]  sky
HTML 5 & Silverlight 5  sky
xap를 서버에 변경했는데 client에서는 변경이 안 되는 경우  시선
blend 단축키[1]  sa2랑
실버라이트에서 지원하는 미디어 형식이에요  sa2랑
Silverlight- Prism 라이브러리/툴킷/참고 예제 사이트입니다.  sky
[UX스터디 첫째주 자료] MS UX 프로그래밍의 소개 파일첨부 sky
vs2010에서 silverlight5프로젝트를 할때 open in expression blend 수정  시선
Behavior 로 구현한 Silverlight TextBox Watermark[1]+1  joseph
DrawingVisual 객체를 이용해서 컨트롤 그리기  Linus
 ★현재글->   [실버라이트 스터디 3주차] 데이터그리드의 Row Detail과 Javascript Access #2 파일첨부 시선
[실버라이트 스터디 3주차] 데이터그리드의 Row Detail과 Javascript Access #1 파일첨부 시선
[실버라이트 스터디 2주차] 데이터그리드에서 이미지 추가/수정/삭제[1]  시선
SECTION02. 익스프레션 블렌드의 레이아웃  짱묜
[실버라이트 스터디] 6월 25일 더디어 실버라이트 스터디를 시작했습니다[5]  시선
실버라이트4에서 XAML 디버깅하기[4]+1  Linus
STEP03. 익스프레션 블렌드의 툴 박스 III  짱묜
STEP03. 익스프레션 블렌드의 툴 박스 II[1]  짱묜
STEP03. 익스프레션 블렌드의 툴 박스 I[2]  짱묜
Silverlight의 Navigation Framework 사용하기 - (1)[1]  Linus
STEP02. 익스프레션 블렌드의 인터페이스 - Results 패널, 그 외  짱묜