728x90
300x250

[Javascript] 웹 페이지 대화 상자 호출 방법

MSDN 홈페이지에서 웹 페이지 대화 상자 호출 방법에 대해 올라온 글을 찾아서 공부한 후에 올려보게 되었습니다.
인터넷 익스플로러(이하 축약어 IE)에 대해서만 제공하는 메서드 일 가능성이 있습니다.

I found the post about how to call the webpage dialog box from the MSDN homepage.
It may be a method that is provided only for Internet Explorer (abbreviated IE).

[영어 단어 소개]

 번호

 언어
 (Language)

 단어
(Word)

 구분

세부사항(Detail)

국문 읽기

1

영어(English)
-> 한글(Korean)

 found

동사
(불규칙)

 find->found->found

 파운드

find(찾다.), found(찾았다.), found(찾았었다.)

2

영어(English)
-> 한글(Korean)

call

동사

call->called->called

call(부른다.), called(불렀다.), called(불렀었다.)

3

영어(English)
-> 한글(Korean)

how

 

의문문(Why) 등

하우

어떻게

4

영어(English)
-> 한글(Korean)

dialog

 

 

다이알로그

(컴퓨터 용어) 대화 창,
대화

5

영어(English)
-> 한글(Korean)

may

 

 

메이

아마도,
(가능성을 나타내어)
…일지도 모른다[…일 수도 있다]

 


1. 웹 페이지 대화 상자 - 호출 방법 (구현)



1. Head 영역

<script type="text/javascript">
        function fnOpen() {
            var sWidth = "300";
            var sHeight = "300";
            var sFeature = "dialogWidth:" + sWidth + "px; dialogHeight:" + sHeight + "px;";
            window.showModalDialog("showModalDialog_target.htm", "", sFeature)
        }
</script>


2. Body 영역

 <form name="oForm">
 <input type="button" value="Push To Create" onclick="fnOpen()">
 </form>



2. 참고 자료

1. http://msdn.microsoft.com/en-us/library/ms536759.aspx, 접속일자 2011-02-01

 

반응형
728x90
300x250

[Windows 2008 R2] IIS 7.5 ASP.NET 4 사용하기

System.Web.Routing을 이용하여 만든 프로젝트가 운 나빴으면 동작하지 않을 뻔해서 기록으로 남깁니다.


정리 1)

403 - 사용 권한 없음: 엑세스가 거부되었습니다.

제공한 자격 증명을 사용하여 이 디렉토리 또는 페이지를 볼 수 있는 권한이 없습니다.

403 오류는 파일이 없거나 디렉토리가 사용거부되었을 때 반응합니다.

정리 2)
(1) ASP.NET 4가 IIS 7.5에 설치되지 않았을 때
-> .NET Framework 4를 설치 후에 IIS 7.5 설치가 가장 이상적인 방법
(2) 응용 프로그램 풀이 .NET Framework 4가 아닐 때
-> .NET Framework 2를 .NET Framework 4로 변경
(3) 관리되는 파이프라인 모드 통합으로의 선택이 아닐 때
-> Classic 모드는 뭔가 부족합니다.
    (정확히 쓰고 싶은 데 자료 요약이 아직 덜 된 상태라서 연구 후에 다시 수정하겠습니다.)
(4) 응용 프로그램 풀의 시작 여부 확인
(5) 응용 프로그램 풀 설정 문제
    (ASP.NET v4.0으로 설정)

정리 3) .NET Framework 4 - ASP.NET 4 IIS 설치
%windir\Microsoft.NET\Framework\v4.0.30319\aspnet-regiis.exe -i
%windir\Microsoft.NET\Framework64\v4.0.30319\aspnet-regiis.exe -i

참고) 응용 프로그램 풀이란?
응용 프로그램들의 집합이라고 보시면 됩니다. IIS 사이트가 응용 프로그램이라고 보시면 됩니다.


구성 여부 확인하기

Visual Studio.NET에서 ASP.NET MVC 2 웹 응용 프로그램을 생성합니다.


이것으로 IIS에 갱신하면 작동 여부를 확인할 수 있습니다.


재미있는 정보

MVC 웹 응용 프로젝트의 global.asax를 잘 가져다 쓴다면 기존에 작업했던 프로젝트(Routing 기능만 되어 있는 프로젝트)에 부담 주지 않고 만들 수 있습니다.


글을 쓰면서 독자에게 한 마디

저는 IIS가 잘 안 돼서 깔고 지우고 3번 정도 했으니 경우에 따라 막노동할 가능성이 있습니다.
IIS를 제거해도 웹 사이트 구성은 남아 있으니 걱정하지 마시기 바랍니다.
반응형
728x90
300x250

[MS SQL Server 2008] Limit 명령 구현하기 (Between)

View를 생성시킨 후에 Select 문의 조건 BETWEEN을 이용하여 구현하는 방법을 소개하겠습니다.

1. View 생성

CREATE VIEW [dbo].[뷰 이름]
AS
SELECT     dbo.Table 이름.*, ROW_NUMBER() OVER(order by idx) as Ranks
FROM         dbo.Table 이름

2. Select 문 사용

SELECT * FROM [dbo].[Table 이름] Where ranks BETWEEN 시작 번호 AND 끝 번호

이 명령의 문제점은 ROW_Number()로 추출된 번호가 view에 고정되므로 조건문이 붙을 시 문제가 발생합니다.
반응형
728x90
300x250

[ASP.NET 4] RouteMap 기술 - URL 단축하기 + 매개변수 처리

ASP.NET Framework 4에 와서 Routing 기술은 더욱 강화되었습니다.
IIS 서버 기술 Rewrite에서 벗어나 완전한 Routing 기술을 제공합니다. URL Routing Process는 다음과 같이 동작합니다.



Figure 1) URL Routing Processing


1. 왜 URL Routing을 도입해야 하는가?

첫째로는, 사용자가 기억하기 좋은 어휘로 전환할 수 있습니다.
둘째로는, 주소가 간결해집니다.
셋째로는, 웹 사이트 구조가 가상화됩니다.
(즉, 물리 주소의 노출이 줄어듭니다.)
넷째로는, 해킹 가능한 상태에서 벗어나게 해줍니다.


2. ASP.NET 4.0에서의 URL Routing


ASP.NET 4.0은 우리에게 메커니즘을 라우팅 전체 URL을 처리하는 단순하고 강력한 방법을 제공합니다.
앞에서 설명한 대로, 라우팅 URL을 제공하기 위해 ASP.NET은 이제 수많은 클래스를 갖춘 방법 중 여러 쉽게 물리적 파일과 URL을 단순하게 사용할 수 있도록 기능을 제공합니다. 우리는 Framework 4의 라이브러리를 사용하여 적용할 수 있습니다.



Figure 2-1) ASP.NET 4.0 URL Routing 흐름

이쯤에서 알아야 할 구현에 대한 구조는 정리하겠습니다.
서버 관리자와 프로그래머가 동시에 알아야 하는 ASP.NET의 구현구조에 대해서는 제외하였습니다.


3. 구현

 번호 파일명 매개변수  URL Routing 주소 
 1 index.aspx Bookstore
 2 index.aspx name Bookstore/name
 3 index.aspx name, age  Bookstore/name/age

[솔루션 파일 구성]
index.aspx
web.config
Global.asax

Global.asax 코드


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Routing;
using System.Web.Security;
using System.Web.SessionState;
namespace WebApplication1
{
    public class Global : System.Web.HttpApplication
    {
        protected void Application_Start(object sender, EventArgs e)
        {
            RouteTable.Routes.MapPageRoute("StoreRoute1", "BookStore", "~/index.aspx", false);
            RouteTable.Routes.MapPageRoute("StoreRoute2", "BookStore/{name}", "~/index.aspx", false);
            RouteTable.Routes.MapPageRoute("StoreRoute3", "BookStore/{name}/{age}", "~/index.aspx", false);
        }
        protected void Session_Start(object sender, EventArgs e)
        {
        }
        protected void Application_BeginRequest(object sender, EventArgs e)
        {
        }
        protected void Application_AuthenticateRequest(object sender, EventArgs e)
        {
        }
        protected void Application_Error(object sender, EventArgs e)
        {
        }
        protected void Session_End(object sender, EventArgs e)
        {
        }
        protected void Application_End(object sender, EventArgs e)
        {
        }
    }
}

참고)

'RouteTable.Routes.MapPageRoute("StoreRoute2", "BookStore/{name}", "~/index.aspx", false);'만 가지고 출력한다고 가정했을 때, http://localhost:포트번호/BookStore/{name}으로 접속할 수 있습니다.
단, 하위 주소인 http://localhost:포트번호/BookStore로 접속할 수 없습니다.

이 예제에서는 그러한 것을 보완한 예제를 설명하였습니다.

index.aspx 코드


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication1.index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="sample1" Text="Null" runat="server"></asp:Label><br />
        <asp:Label ID="sample2" Text="Null" runat="server"></asp:Label>
        <br />
        <asp:HyperLink ID="text" runat="server" NavigateUrl="~/Bookstore/Cakeon/aaa" Text="야호"></asp:HyperLink>
    </div>
    </form>
</body>
</html>



index.aspx.cs 코드


protected void Page_Load(object sender, EventArgs e)
{
            string name = Page.RouteData.Values["Name"] as string;
sample1.Text = name;
string age = Page.RouteData.Values["Age"] as string;
sample2.Text = age;
}




4. 동작 화면




5. 참고자료(Reference)

1. http://www.codeproject.com/KB/aspnet/asp_net4_0_URLRouting.aspx, 접속일자 2011-01-28

반응형
728x90
300x250

[ASP.NET] 웹 서비스 구현 하기(Ajax) - JQuery(JSON)으로 호출 - Hello World

앞서 작성한 '[ASP.NET] 웹 서비스 구현 하기(Ajax) - Javascript로 호출 - Hello World'에 이어서 JQuery(JSON)을 이용하여 데이터를 가져오는 방법에
대해 소개하겠습니다.


1. 보충

그 전에 앞서 이전에 소개해드린 강좌에서 빠진 내용을 하나 소개하겠습니다.
매개 변수입니다.

function chHelloWorld2() {
        WebApplication1.WebService1.HelloWorld2($get("txtName").value, OnSuccess);
}

이 부분에서 $get("txtName").value, OnSuccess가 있습니다.

Web Service에서 실제로 구현된 코드는 아래와 같습니다.

 [WebMethod]
public string HelloWorld2(string s1)
{
       return "Hello World" + s1;
}

자바 스크립트 부분을 보충하자면 아래와 같이 정의할 수 있겠습니다.
네임스페이스.클래스.함수(매개 변수1, 매개 변수2, …, 매개 변수n, OnSuccess, OnFailure)
(Parameters: ControlId,Method name,Parameter1,Parameter2...n,CallbackMethod)



두 개의 입력을 받아서 출력하려면 웹 서비스를 다음과 같이 수정할 수 있습니다.

 [WebMethod]
public string HelloWorld2(string s1, string2)
{
       return "Hello World" + s1;
}

물론 클라이언트 부분에서도 수정해줘야 합니다.
Input(HTML 사용자 컨트롤)이 txtName1, txtName2라고 가정합니다.

function chHelloWorld2() {
        WebApplication1.WebService1.HelloWorld2($get("txtName1").value, $get("txtName2").value, OnSuccess);
}


2. JSON을 이용한 데이터 받기



위의 예제처럼 Alert을 이용하여 출력하는 예제입니다.

1. 솔루션 구성



WebService1.asmx과 index.aspx은 Visual Studio에서 생성할 수 있지만, 나머지 이상한 파일들은 별도로 내려받아야 합니다.

jquery-ui-1.8.8.custom.zip

Jquery 홈페이지(http://www.jquery.com)에서 내려받으실 수 있습니다. 귀찮으신 분들은 첨부된 파일을 내려받으시면 됩니다.

2. WebService1.asmx 설정 하기

[WebService1.asmx.cs]


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace WebApplication1
{
    /// <summary>
    /// WebService1의 요약 설명입니다.
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다.
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld3(string s1, string s2)
        {
            return s1 + " " + s2;
        }
    }
}


[WebService1.asmx]

<%@ WebService Language="C#" CodeBehind="WebService1.asmx.cs" Class="WebApplication1.WebService1" %>

3. Index.aspx 파일 설정 하기

[index.aspx]


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication1.index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="js/jquery-1.4.4.min.js" type="text/javascript">
    </script>
    <script src="js/jquery-ui-1.8.8.custom.min.js" type="text/javascript">
    </script>

    <script language="javascript" type="text/javascript">
        function HelloQuery() {
            $.ajax({
                type: "POST",
                url: "
http://localhost:50000/WebService1.asmx/HelloWorld3",
                data: '{"s1":"' + $get("txtName1").value + '", "s2":"' + $get("txtName2").value + '"}',
                processData: false,
                contentType: "Application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    alert(data.d);
                }
            });
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <input name="txtName1" id="txtName1" type="text" />
        <input name="txtName2" id="txtName2" type="text" />
        <a href="#" onclick="HelloQuery()">TEST</a>
    </div>
        <asp:ScriptManager runat="server">
            <Services>
                <asp:ServiceReference Path="~/WebService1.asmx" />
            </Services>
        </asp:ScriptManager>
    </form>
</body>
</html>

http://localhost:50000/WebService1.asmx/HelloWorld3

선언된 파일의 주소를 모르시면 본인이 만드신 ASMX파일을 접속하셔서 확인하셔도 됩니다.

* 구문 확대해서 살펴보기

data: '{"s1":"' + $get("txtName1").value + '", "s2":"' + $get("txtName2").value + '"}',


data : ' { " 매개변수1 " : " '  +  $get("클라이언트 input name 값").value + ' " , 
    " 매개변수2 " : " '  +  $get("클라이언트 input name 값").value + ' " ,                            


             " 매개변수n " : " '  +  $get("클라이언트 input name 값").value + ' " } '

 
ex) 매개 변수가 하나일 때

data:'{"s1":"' + $get("클라이언트 input name 값").value + '"}'



3. 맺는글

사용자 환경에 맞게 적절히 연구하시어 잘 사용하시기 바라는 마음으로 글을 정리해봅니다.
아무쪼록 Jquery를 활용하는 것과 웹 서비스의 Hello World 글을 이것으로 정리합니다.

반응형
728x90
300x250

[ASP.NET] 웹 서비스 구현 하기(Ajax) - Javascript로 호출 - Hello World

ASP.NET의 웹 서비스는 XML, SOAP 등 산업에서 사용하는 여러 통신 프로토콜을 통합한 하나의 프로토콜이라고 볼 수 있습니다.
자세한 설명은 Microsoft 홈페이지를 참고하시기 바랍니다.

웹 서비스는 웹에서 HTTP 요청을 수행하여 클라이언트 응용 프로그램에서 호출할 수 있는 웹 서버의 구성 요소입니다. ASP.NET을 사용하면 사용자 지정 웹 서비스를 만들거나, 기본 제공 응용 프로그램 서비스를 사용하거나, 클라이언트 응용 프로그램에서 이러한 서비스를 호출할 수 있습니다. 다음 설명서 순서에 따라 살펴보면 관련 항목을 보다 쉽게 검색할 수 있습니다.

MSDN - ASP.NET 웹 서비스 中

참고 자료 : http://msdn.microsoft.com/ko-kr/library/t745kdsh.aspx


이 프로토콜을 활용하여 웹 서비스를 구현하는 방법에 대해서 실습해보겠습니다.

1. 구현 결과



2. 구현하기

1. 솔루션 구성하기



빈 ASPX 파일 하나 두고 웹 서비스를 하나 생성합니다.

2. WebService.ASMX의 Header라고 불리는 태그 보기



WebService1.asmx를 오른쪽 버튼을 열면 `태그 보기(K)`가 있습니다.
클릭합니다.



위와 같이 생겨 있음을 보실 수 있습니다.

(중요)
'Class' 항목은 네임스페이스와 클래스를 지정하는 중요한 것이므로 WebService1.asmx.cs 파일에서 설정할 때 같게 해주어야 합니다.

3. ASMX.CS 파일 보기
보통 WebService1.asmx를 더블 클릭하면 보실 수 있습니다.

4. 구현 하기

WebService1.asmx 파일


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace WebApplication1
{
    /// <summary>
    /// WebService1의 요약 설명입니다.
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다.
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        public string HelloWorld2(string s1)
        {
            return "Hello World" + s1;
        }
    }
}



Index.aspx 소스(CS 파일 아님)

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="WebApplication1.index" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function chHelloWorld() {
            WebApplication1.WebService1.HelloWorld(OnSuccess);
        }
        function chHelloWorld2() {
            WebApplication1.WebService1.HelloWorld2($get("txtName").value, OnSuccess);
        }
        function OnSuccess(result) {
            alert(result);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <a href="#" onclick="chHelloWorld()">TEST</a>
        <br />
        <input name="txtName" id="txtName" type="text" />
        <a href="#" onclick="chHelloWorld2()">TEST</a>
    </div>
        <asp:ScriptManager runat="server">
            <Services>
                <asp:ServiceReference Path="~/WebService1.asmx" />
            </Services>
        </asp:ScriptManager>
    </form>
</body>
</html>

 

3. 참고자료(Reference) 
1. http://alexandershapovalov.com/how-to-call-wcf-services-from-javascript-jquery-and-aspnet-ajax-39/

반응형
728x90
300x250

[PC활용] Wireless - Realtek 8192E Wireless Driver(Win7) 무선 랜 드라이버

Realtek에서 2011.1.22일에 내려받았던 무선 랜 드라이버입니다.
Release Version은 1676.10.1007입니다.
OS는 Windows 7입니다.
Realtek 홈페이지에서 내려받으려면 속도가 느리고 고된 작업이 됩니다.
필요하신 분은 받아가셔서 잘 사용하시기 바랍니다.

[첨부(Attachment)]
819xP_WindowsDriver_1676.10.1007.2009_Win7.vol1.egg
819xP_WindowsDriver_1676.10.1007.2009_Win7.vol2.egg

반응형
728x90
300x250

[ASP.NET] CS 코드(C# 코드)에 자바스크립트 구현하기

ASP.NET에서 서버 측 코드와 클라이언트 측 코드가 분리되었습니다. Web2.0의 개발 추세에 맞게 적용해놨습니다.

물론 현재의 ASP.NET은 Web 3.0 추세에 맞게 발전되어가고 있습니다.
아래의 그림 결과와 같이 출력하는 예제를 구현하도록 하겠습니다.

1. 구현 결과




2. 작성하기

1. 빈 웹 프로젝트 만들기



ASP.NET 빈 웹 프로젝트를 만듭니다.

2. 빈 index.aspx 페이지 만들기

빈 페이지를 만듭니다.

3. 실제 코드 구현하기


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication1
{
    public partial class index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
      {
            ClientScriptManager sm = Page.ClientScript;
            string script = "<script>alert('" + "태스트" + "');</script>";
            sm.RegisterStartupScript(this.GetType(), "sm", script);
      }
    }
}

반응형

+ Recent posts