[Silverlight] QueryString 을 가져와보자..

SilverLight 2009. 4. 15. 13:42 posted by 무명시인

사용자 삽입 이미지

(1) Window  개체와 Document 개체를 선언한다.

(2) 지난번 아티클에서 확인한 Html 페이지의 텍스트 박스 개체

(3) id 라는 키의 QueryString 을 가져와서 텍스트 박스에 뿌려준다.

사용자 삽입 이미지


이런식으로 QueryString 을 가져온다..

[Silverlight] Silverlight 와 HtmlDOM

SilverLight 2009. 4. 14. 15:10 posted by 무명시인

실버라이트와 HTML 은 밀접한 관련이 있다..

그렇지.. 결국은 웹페이지 위에 올려서 돌아 가는 것이니..

그리 하여..

실버라이트와 HTML DOM 에 대하여 간략하게 알아보자 ..

사용자 삽입 이미지


(1) 은 Silverlight.createObjectEx 메소드가 담긴 .js 이다..

(2) 는 지난번 아티클에서 설명한 Silverlight.createObjectEx 메소드

(3) 은 확인하기 좋은 텍스트 박스..

사용자 삽입 이미지

System.Windows.Browser.HtmlDocument 클래스는 HTML 관련 처리의 모든것을 담당하는 클래스 이다..

GetElementById 라는 메소드는 어디서 많이 보지 않았는가??

System.Windows.Browser.HtmlElement 클래스는 HTML 객체를 찾아다 담을수있다..

SetPropertySetStyleAttribute 메소드는 상태와 스타일을 설정해주는 함수이다..

매우 직관적이지 않는가??

책에 있는 예제를 타이핑후 옮겨본다..




실버라이트 프로젝트를 웹사이트에 올려서 돌리면..

(구체적으로 말하자만.. 자동으로 만들어 주는 웹사이트에 있는 .js 에서 생기는)..

제목에 적은 Silverlight.createObjectEx()  통해 돌아간다..

물론, Object 태그로 돌려도 관계는 없겠지만..

조금더 확장적인 Silverlight 를 구동 하려면..

아무래도 마소가 쥐어주는걸 사용하라는 말이겠지..

<script type="text/javascript" src="Silverlight.js"></script>

<div id="divSilverlight">

        <script type="text/javascript" language="javascript">
            Silverlight.createObjectEx(
            {
                source: "ClientBin/SilverlightApplication1.xap"
                , parentElement: document.getElementById("divSilverlight")
                , id: "sexybearSilverlight"
                , properties:
                    {
                        height: "50%"
                        , width: "50%"
                        , background: "transparent"
                        , isWindowless: "true"
                        , frameRate: "30"
                        , inplaceInstallPrompt: true
                        , version: "2.0"
                        , ignoreBrowserVer: "true"
                        , enableHtmlAccess: "true"
                    }
                , event: {}
            }

        );
        </script>

    </div>


Silverlight.createObjectEx()  메서드를 통해 실버라트를 웹사이트에 얻는 것은 위와 같은 코드를 통해서이다..

검색을 해보니..

책보가 설명이 더 잘되어 있더라...ㅋ

아래는 테리님 블로그에서 훔쳐 왔습니다.ㅋ

실버라이트 컨트롤은 CreateObjectEX() 메소드를 통해 웹 페이지에 표시됩니다. 이 메소드는 Silverlight.js 파일에 정의된 자바스크립트 클래스인 Silverlight의 정적 메소드입니다.


Silverlight.CreateObjectEX() 메소드는 실버라이트 컨트롤 인스턴스를 생성하고 웹 페이지에 추가하기 위해 사용됩니다. 먼저 실버라이트 플러그인의 설치여부를 확인한후 설치되지 않았을경우 설치에 대한 정보를 보여주며 브라우저 종류를 검색하고 해당 브라우저에 맞는 실버라이트 컨트롤를 표시 기술을 자동으로 선택해줍니다. 다음은 CreateObjectEX() 메소드에서 사용되는 파라미터표 입니다.


파라미터 설명
source 실버라이트 컨트롤이 포함된 XAML 파일의 경로입니다.
parentElement 실버라이트 컨트롤이 호스팅되는 웹 페이지의 DOM 엘리먼트입니다.
id 웹페이지 DOM에서 실버라이트 컨트롤에 할당된 ID 입니다.
properties 높이, 너비, 배경과 같은 실버라이트 컨트롤의 속성을 정의합니다.
envents 실버라이트 컨트롤의 load와 error 이벤트 핸들러를 정의합니다.
initParams 실버라이트 컨트롤이 로딩될 때 전달할 초기 값을 정의합니다.
context OnLoad 이벤트에서 접근이 가능한 유일한 식별자 입니다. 하나의 페이지에서 여러 개의 실버라이트 컨트롤을 호스팅할 때 사용합니다.

[표1] CreateObjectEX 메소드 파라미터


다음은 파라미터중 properties의 세부 속성표입니다.

속성 설명
width 실버라이트 컨트롤의 너비를 설정합니다.
height 실버라이트 컨트롤의 높이를 설정합니다.
background 실버라이트 컨트롤의 배경색를 설정합니다.
isWindowless 실버라이트 컨트롤을 창 없이 표시할지 여부를 설정합니다. 기본값은 “false”입니다. “true”로 설정시 HTML 컨트롤을 실버라이트 컨트롤 위에 표시할 수 있습니다.
frameRate 컨트롤이 초당 랜더링 되는 최대 수를 설정합니다.
inplaceInstallPrompt 실버라이트 플러그인 설치에 대한 추가 정보 표시여부를 설정합니다.
version 실버라이트 플러그인의 버전을 설정합니다.
ignorBroswerVer 실버라이트 플러그인이 설치되고 실행될 때 브라우저 버전을 무시할지 여부를 설정합니다.
enableHtmlAccess 실버라이트 컨트롤이 웹 페이지 DOM 개체 접근 가능여부를 설정합니다.

[표2] 파라미터 properties의 세부 속성



String.Format 의 Format(형태 혹은 정형화 출력)

.Net 2009. 4. 13. 15:21 posted by 무명시인
String.Format 관련하여 MSDN 을 검색하던중..

보기 편하게 정리된 내용이 있었다..

다음 처럼..

물론 링크는 요기..

http://msdn.microsoft.com/ko-kr/library/fht0f5be(VS.85).aspx

 enum Color { Yellow = 1, Blue, Green };
    static DateTime thisDate = DateTime.Now;
   
    protected void Page_Load(object sender, EventArgs e)
    {       
        string s = "";
        Response.Write("Standard Numeric Format Specifiers<br>");
        s = String.Format(
            "(C) Currency: . . . . . . . . {0:C}<br>" +
            "(D) Decimal:. . . . . . . . . {0:D}<br>" +
            "(E) Scientific: . . . . . . . {1:E}<br>" +
            "(F) Fixed point:. . . . . . . {1:F}<br>" +
            "(G) General:. . . . . . . . . {0:G}<br>" +
            "    (default):. . . . . . . . {0} (default = 'G')<br>" +
            "(N) Number: . . . . . . . . . {0:N}<br>" +
            "(P) Percent:. . . . . . . . . {1:P}<br>" +
            "(R) Round-trip: . . . . . . . {1:R}<br>" +
            "(X) Hexadecimal:. . . . . . . {0:X}<br>",
            -123, -123.45f);
       
        Response.Write(s);
        Response.Write("<hr>");
       
        Response.Write("Standard DateTime Format Specifiers<br>");
        s = String.Format(
            "(d) Short date: . . . . . . . {0:d}<br>" +
            "(D) Long date:. . . . . . . . {0:D}<br>" +
            "(t) Short time: . . . . . . . {0:t}<br>" +
            "(T) Long time:. . . . . . . . {0:T}<br>" +
            "(f) Full date/short time: . . {0:f}<br>" +
            "(F) Full date/long time:. . . {0:F}<br>" +
            "(g) General date/short time:. {0:g}<br>" +
            "(G) General date/long time: . {0:G}<br>" +
            "    (default):. . . . . . . . {0} (default = 'G')<br>" +
            "(M) Month:. . . . . . . . . . {0:M}<br>" +
            "(R) RFC1123:. . . . . . . . . {0:R}<br>" +
            "(s) Sortable: . . . . . . . . {0:s}<br>" +
            "(u) Universal sortable: . . . {0:u} (invariant)<br>" +
            "(U) Universal sortable: . . . {0:U}<br>" +
            "(Y) Year: . . . . . . . . . . {0:Y}<br>",
            thisDate);
        Response.Write(s);
        Response.Write("<hr>");
               
        Response.Write("Standard Enumeration Format Specifiers<br>");
        s = String.Format(
            "(G) General:. . . . . . . . . {0:G}<br>" +
            "    (default):. . . . . . . . {0} (default = 'G')<br>" +
            "(F) Flags:. . . . . . . . . . {0:F} (flags or integer)<br>" +
            "(D) Decimal number: . . . . . {0:D}<br>" +
            "(X) Hexadecimal:. . . . . . . {0:X}<br>",
            Color.Green);
        Response.Write(s);
    }

사용자 삽입 이미지

결과는 이렇게..

네이버 네임택을 만들어보자

.Net 2009. 4. 10. 09:39 posted by 무명시인



네이버 메일의 기능중에 이런 것이 있더라~~

사용자 삽입 이미지

네임택이라고 하는것인데..

알고 보니..

GDI 로 그리는것이더라..

그래서 asp.net 으로 구현 해보았다 ..

사용자 삽입 이미지

aspx 페이지는 빈페이지~

사용자 삽입 이미지

name 이라는 파라미터를 받아서..

gdi 로 그려주려는 것이다..

다음처럼 사용하면...

사용자 삽입 이미지

페이지를 실행하니..

음하~

사용자 삽입 이미지

떨어지는 미덕 감각은 어쩔수 없고 ..ㅡㅡ;;;

asp.net 에서 Smart Editor 를 사용해보자

OpenApi 2009. 4. 10. 09:25 posted by 무명시인


  

네이버의 에디터 ..

스마트 에디터라고 개발이후에 엄청 광고도 했었더랬다..

사용자 삽입 이미지

너무 친숙한 모습니다..

네이버 스마트 에디터 같은 경우에는 다들 한번 이상 사용해보았을것이다..

그럼데..

네이버에서 오픈소스로 스마트 에디터를 공개 했더라..(다는 아니고 Basic 이라는 버젼으로 그래도 머..쩝)

다운로드 & 참고 -->> http://dev.naver.com/projects/smarteditor

자 그럼 다운로드를 받으시고 ..

중요한건 진도 자바스크립트 프레임웤도 다운로드를 해야 한다는 것이다..

진도 프레임웤 다운 & 참고 -->> http://dev.naver.com/projects/jindo

그리고 jindo.min.js 이 파일의 이름으로 js 폴더에 카피 ..

사용자 삽입 이미지

다음과 같은 구조로 이루어져 있다.

SmEditor 는 에디터에서 필요한 파일들로 구성을 하였다..

Css ;; 에디터 스타일

img ;; 에디터 이미지들

js ;; 필요한 자바스크립트 라이브러리

js_src ;; 자바스크립트 소스들

자자 그러면 한번 스마트 에디터를 사용해보자 ..

사용은 의외로 간단하다..

사용자 삽입 이미지

js 파일을 인클루드 하고..

기존 대부분의 js 기반 에디터들과 마찬가지로..

텍스트 에어리에 위에 아이프레임으로 스킨을 얻는 방식이다..

참고할 사항은..

asp.net 의 서버측 자원에서 사용하기 위해 포스트 백이 이루어지기전에 히든 필드에 담는것이다..

그리고 서버측에서는 단순하게 히든필드를 참조 한다.

사용자 삽입 이미지

참~~ 쉽죠잉~~

테스트를 하니.. 잘된다 ^^;;

사용자 삽입 이미지

-----

테스트 소스도 첨부 합니다..

Naver Open Api

OpenApi 2009. 4. 8. 11:42 posted by 무명시인

네이버에 개발자 센터라는 항목이 있다.

오픈소스 프로젝트와 오픈 API 등등의 서비스 이다 ..

http://dev.naver.com/

사용자 삽입 이미지



정말 네이버 틱한 페이지 ..

이 카테고리는 오픈 아피(api)를 다뤄 보고 테스트도 겸사겸사 해보려 한다..

우선은 스마트에디터!!

ROW_NUMBER() OVER(ORDER BY ...)

About DataBase 2009. 4. 6. 17:59 posted by 무명시인
http://msdn.microsoft.com/ko-kr/library/ms186734(SQL.90).aspx

ROW_NUMBER 구하기 편하게??


ROW_NUMBER ( )     OVER ( [ <partition_by_clause> ] <order_by_clause> )
<partition_by_clause>

FROM 절이 생성한 결과 집합을 ROW_NUMBER 함수가 적용되는 파티션으로 나눕니다. PARTITION BY 구문은 OVER 절(Transact-SQL)을 참조하십시오.

<order_by_clause>

파티션에서 ROW_NUMBER 값이 행에 할당되는 순서를 결정합니다. 자세한 내용은 ORDER BY 절(Transact-SQL)를 참조하십시오. 순위 함수에 <order_by_clause>가 사용된 경우 정수는 열을 나타낼 수 없습니다.

bigint

ORDER BY 절은 지정된 파티션 내에서 행에 고유 ROW_NUMBER가 할당되는 순서를 결정합니다.

ms186734.note(ko-kr,SQL.90).gif참고:
OVER 절의 ORDER BYROW_NUMBER를 정렬합니다. 'Row Number'가 아닌 열 기준으로 정렬하는 SELECT 문에 ORDER BY 절을 추가하면 결과 집합은 외부 ORDER BY를 기준으로 정렬됩니다.

다음 예에서는 연간 판매 실적에 따라 AdventureWorks의 영업 사원에 대한 ROW_NUMBER를 반환합니다.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
    ,ROW_NUMBER() OVER(ORDER BY SalesYTD DESC) AS 'Row Number'
    ,s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s 
    INNER JOIN Person.Contact c 
        ON s.SalesPersonID = c.ContactID
    INNER JOIN Person.Address a 
        ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL 
    AND SalesYTD <> 0;

다음 예에서는 행 번호 50부터 60까지의 행을 OrderDate순으로 반환합니다.

USE AdventureWorks;
GO
WITH OrderedOrders AS
(
    SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (ORDER BY OrderDate) AS 'RowNumber'
    FROM Sales.SalesOrderHeader 
) 
SELECT * 
FROM OrderedOrders 
WHERE RowNumber BETWEEN 50 AND 60;

다음 예에서는 PARTITION BY 인수를 사용하는 방법을 보여 줍니다.

USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName
    ,ROW_NUMBER() OVER 
    (PARTITION BY PostalCode ORDER BY SalesYTD DESC) AS 'Row Number'
    ,s.SalesYTD, a.PostalCode
FROM Sales.SalesPerson s 
    INNER JOIN Person.Contact c 
        ON s.SalesPersonID = c.ContactID
    INNER JOIN Person.Address a 
        ON a.AddressID = c.ContactID
WHERE TerritoryID IS NOT NULL 
    AND SalesYTD <> 0;

" $ " 키워드

Ajax Extension 2009. 4. 6. 17:34 posted by 무명시인


<script type="text/javascript" language="javascript">
	document.getElementById('개체명')  =  $get("개체명");
</script>


$ 키워드는 해당 개체를 가져온다 ..

ScriptManager 가 올려져 있는 aspx 페이지에서 사용할수 있다.


<script type="text/javascript" language="javascript">
	$get("Label1").innerHTML = $get("TextBox1").value;

	document.getElementById('Label1').innerHTML = document.getElementById('TextBox1').value
</script>


결국 위 아래 구문은 같다.

Javascript 사용

Ajax Extension 2009. 4. 6. 15:18 posted by 무명시인


[msdn 참고 경로]

asp.net 에서 자바스크립트를 사용할때 다음메소드를 사용한다.


public static void RegisterClientScriptBlock(
    Control control,
    Type type,
    string key,
    string script,
    bool addScriptTags
)

public static void RegisterClientScriptBlock(
    Page page,
    Type type,
    string key,
    string script,
    bool addScriptTags
)


두개의 overload method..

다른건 실행 주체가 컨트롤(Update Panel 포함) 이냐..

Page 개체이냐의 차이다..

아래는 쌤플코드..


ScriptManager.RegisterClientScriptBlock(
            업데이트 패널 개체
            , this.GetType()
            , "jsAlert"
            , "<script type="text/javascript" language="javascript">alert('111');</script >"
	    , false);

ScriptManager.RegisterClientScriptBlock(            
	    this.Page            
	   , this.GetType()            
	   , "jsAlert"            
	   , "<script type="text/javascript" language="javascript">alert('111');</script >"
	   , false);