반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발꿈나무

[Blazor] 버튼 클릭할 경우 XML 파일 열기(2) - 메모장으로 열기 본문

C#/Blazor

[Blazor] 버튼 클릭할 경우 XML 파일 열기(2) - 메모장으로 열기

HYOKYE0NG 2021. 10. 12. 14:22
반응형
 

[Blazor] 버튼 클릭할 경우 XML 파일 열기(1)

버튼을 클릭하면 어떤 경로에 있는 xml 파일을 열어보자 우선 나는 Blazor로 프로젝트를 진행중이고, UI로는 Telerik을 사용하고 있다. 이 상황에서 내가 해야할 것은 Telerik Grid 안에 db 내용으로 button

hyokye0ng.tistory.com

 

지난 포스팅에서 Telerik UI를 사용하지만 sorting 기능도 지원이 되게끔 버튼을 생성했다.

이번 포스팅에서는 그 버튼을 클릭할 경우, XML 파일이 열리도록 해보자

 

 

우선 내 프로젝트의 appsettings.json 파일은 4가지 환경으로 나눠져있다.

환경마다 xml 파일이 저장되어 있는 경로가 다르기 때문에 현재의 config에서 xml 경로를 가져와야 했다.

 

 

내 프로젝트의 appsettings에는 XMLRepository가 다음과 같이 저장되어 있다.

  "XMLRepository": "\\\\ss06.cha.volvo.net\\wc2vpm$\\WCMETADATA",

따라서 SysinfoService.cs라는 service를 하나 만들고 다음과 같이 코드를 작성했다.

using Microsoft.Extensions.Configuration;

namespace VPMIntegration.Blazor.Services
{
    public class SysinfoService
    {
        IConfiguration config;
        public SysinfoService(IConfiguration config)
        {
            this.config = config;
        }

        public string GetXMLRepository()
        {
            return config.GetValue<string>("XMLRepository");
        }
    }
}

현재의 config에서 XMLRepository의 Value를 가져오겠다는 것이다.

 

 

생성해놓은 서비스의 메소드를 Page에서 사용한다.

@code{
	public string xmlrepositoryString { get; set; }
    
    private void XML_Load(string dcn_no)
    {
        xmlrepositoryString = SysinfoService.GetXMLRepository(); //Get xml 파일 경로
        string xml_path = @$"{xmlrepositoryString}\{dcn_no}.xml"; //파일명을 합친 path 생성
        if (File.Exists(xml_path)) //file이 존재할 경우
        {
            Process.Start("notepad.exe", xml_path); //notepad를 이용하여 파일 open
        }
        else //file이 없을 경우
        {
            Console.WriteLine("The file {0}.xml could not be located", dcn_no);
        }
    }
}

 

버튼을 클릭할 경우 XML_Load를 호출하면 xml파일이 메모장으로 열린다.

<button class="btn_dcnno" @onclick="(() => XML_Load(currItem.DCN_NO))">@currItem.DCN_NO</button>

 

 

반응형
Comments