퇴근5분전

웹을 진행한지 몇년 된것 같으니... 되새기는 셈 치고 살짝 공부...

웹도 많은게 바뀐듯...한데 윈폼, WPF만 해서 그런지 멈춰버린듯...

VS2017로 Asp.Net Core 2.0으로 Razor 페이지 생성.

# 페이지 추가,

# 페이지 링크 추가

# MVC페이지로 컨트롤러와 뷰페이지 생성

# Get / Post

# Razor의 Helper 사용자 정의 메서드 만들기.

# @functions를 이용한 방법.

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 테스트용 스크립트 ~~~~~~

@model Demo_WebCore.Pages.Test
    
@*
    For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
*@
@{
    ViewBag.Title = "테스트 컨트롤러 ( POST, GET ) 페이지";
}

@using Demo_WebCore.Helpers   @* using 사용자 정의 Html 확장 메서드 위치 *@
 
@functions
{
    public object 디스플레이(string msg)
    {
        return Html.DisplayName(msg);
    }
}
 
 테스트 GET : <a href="/Test/Create"> Edit </a> <br/> 

@using (@Html.BeginForm("Create", "Test", FormMethod.Post))
{
    @Html.AntiForgeryToken()

    @("테스트 POST : ") <br />

    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
    @Html.EditorFor(model => model.Text, new { htmlAttributes = new { @class = "form-control" } })
    @Html.ValidationMessageFor(model => model.Text, "", new { @class = "text-danger" })

    <input type="submit" value="포스트" />
    <br />

    @디스플레이("~~~~")<br/>
    @Html.DisplayName("~~~"); <br />

    @Html.JSFW("하하하");   @*사용자 정의 Html 확장 메서드*@
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

namespace Demo_WebCore.Helpers
{
    public static class HTMLEx
    {
        public static IHtmlContent JSFW(this IHtmlHelper html, string message)
        {
            return html.Raw($"<span>{message}</span>");
        }
    }
}

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

타입 스크립트와 자바스크립트 구분 관련 내용  : https://msdn.microsoft.com/en-us/magazine/jj883955.aspx 

 

 

 

'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글

달력을 만들때...  (0) 2009.05.11
메뉴] 자바스크립트로 만든 메뉴객체를 이용.  (0) 2009.05.09
철호야! 공부하자!  (0) 2009.05.08
리피터 사용!!  (0) 2009.05.08
Table Row-> Select, MouseOver, Out관련  (0) 2009.05.08

달력 컨트롤 소스임. Web용임.

달력을 쉽게 만들려면
DateTime을 가지고 쉽게 제작이 가능함.

요구사항에 적합한 달력을 만들기 위해서 새로운 달력이 필요하다면 한번쯤 만들어보는것도
괜찮은 듯 함.
중요한 부분만 글씨를 굵게 표시 했음.




 private void create(int year, int month)
    {

        DateTime date = new DateTime(year, month, 1); // 해당년월에 1일.

        ctrl_CalendarBody.Text = "day : " + DateTime.DaysInMonth(year, month).ToString(); // 총 일수
        ctrl_CalendarBody.Text += "week : " + date.DayOfWeek.ToString();
        int totalDay = DateTime.DaysInMonth(year, month);

        StringBuilder sb = new StringBuilder("<table width=\"700\" border=\"1\" cellspacing=\"5\" cellpadding=\"3\"><tr><td bgcolor=\"FFFFFF\">");
        string[] dayofweek = Enum.GetNames(typeof(DayOfWeek));

        sb.AppendFormat("<tr align=center>");
        for (int i = 0; i < dayofweek.Length; i++)
            sb.AppendFormat("<td style=\"width: 100px;height: 30px;\">{0}</td>", dayofweek[i].Substring(0, 3));
        sb.AppendFormat("</tr>");
        sb.AppendFormat("<tr>");
        string style = string.Empty;
        string text = string.Empty;
        for (int day = 1 - (int)date.DayOfWeek; day <= totalDay; day++)
        {
            //설정
            if ((day + (int)date.DayOfWeek) % 7 == 0) // 토요일
                style = string.Format("color:{0};", "blue");
            else if ((day + (int)date.DayOfWeek) % 7 == 1) // 일요일
                style = string.Format("color:{0};", "red");
            else
                style = string.Format("color:{0};", "black"); // 월 ~ 금요일


            if (day <= 0)
                text = "&nbsp";
            else
            {
                if (day == DateTime.Now.Day && year == DateTime.Now.Year && month == DateTime.Now.Month) // 오늘 날짜 표시
                {
                    style += "font-weight:bold;";
                    text = day.ToString();
                }
                else
                    text = day.ToString();
            }

            //해당값 입력.
            sb.AppendFormat("<td style=\"{1}\">{0}</td>", text, style);
            if (0 == (day + (int)date.DayOfWeek) % 7) // 다음주~ 로 넘어가는 부분   DayofWeek 요일 열거형
                sb.Append("</tr><tr>");               // (day + (int)date.DayOfWeek) % 7  나머지가 0

            style = string.Empty;
        }
        sb.AppendFormat("</tr>");
        sb.AppendFormat("</table>");
        ctrl_CalendarBody.Text = sb.ToString();
        sb.Remove(0, sb.Length);
        sb = null;
    }

우~ 쒸... 마우스 오버된 이미지의 top + height 면 Div의 포지션이 지정 되는건뎅 값이 없다고만 나오넹... 쥐럴.....

'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글

Asp.Net] Razor, MVC 스터디..  (0) 2018.03.15
달력을 만들때...  (0) 2009.05.11
철호야! 공부하자!  (0) 2009.05.08
리피터 사용!!  (0) 2009.05.08
Table Row-> Select, MouseOver, Out관련  (0) 2009.05.08


 이 파일은 내 친구 철호군이 닷넷 프로그래밍을 하고자 하여
도움을 주고자 열심히 만들어서 주었다.

 근 1년이 다되어 읽어보니 하하... 설명을 해주어야 했던것들이 많이 보이는...
파워포인트는 역시 어렵다!

aaa bbb ccc ddd eee fff
0_0 0_1 0_2 0_3 0_4 0_5
1_0 1_1 1_2 1_3 1_4 1_5
2_0 2_1 2_2 2_3 2_4 2_5
3_0 3_1 3_2 3_3 3_4 3_5
4_0 4_1 4_2 4_3 4_4 4_5
5_0 5_1 5_2 5_3 5_4 5_5
6_0 6_1 6_2 6_3 6_4 6_5
7_0 7_1 7_2 7_3 7_4 7_5
8_0 8_1 8_2 8_3 8_4 8_5
9_0 9_1 9_2 9_3 9_4 9_5





위 소스는 리피터를 사용한 예제등를 이용해 Asp.Net 웹사이트를 빌드해서 나온
창에 소스보기를 하여 부분을 카피해서 복사한 내용임
원본 asp.Net 프로젝트 소스

마우스를 올리고, 클릭하면 해당 row의 바탕색이 바뀜.
header1 header2 header3
dataRow 1 dataRow 1 dataRow 1
dataRow 2 dataRow 2 dataRow 2
dataRow 3 dataRow 3 dataRow 3
dataRow 4 dataRow 4 dataRow 4
소스 파일 :

'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글

철호야! 공부하자!  (0) 2009.05.08
리피터 사용!!  (0) 2009.05.08
기존의 웹프로젝트 페이지를 그대로 이용하기.  (0) 2009.05.08
트리뷰 노드 추가 재귀 함수.  (0) 2009.05.02
페이징 컨트롤러  (0) 2009.05.01


기존에 사용되던 프로젝트 페이지를 수정하지 않고
데이타만 읽어올수 있게 새로운 프로젝트에 포함시키기 위한 트릭?


 새프로젝트에서  iframe을 이용해 기존페이지를 보이게 하고 타이머로
기존 페이지의 데이타를 가져옴.

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title>팝업창</title>
  <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
  <meta name="ProgId" content="VisualStudio.HTML">
  <meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
  <script type="text/javascript" src="trace.js"></script>
  <script type="text/javascript">
   function returnValue()
   {       
     var frm = document.getElementById("iframe1");
    
    var fDoc = frm.contentWindow;
    
    opener.document.all.TextBox1.value  =  fDoc.document.all.TextBox1.value;
    tm  = setTimeout("returnValue()", 100);
   }

   function aa()
   {
    alert( event.keyCode );
   }
   
  </script>
 </head>
 <body onload="returnValue();" bgColor="#33cccc">
  <input id="aa" type="text">
  <iframe id="iframe1" src="WebForm2.aspx"></iframe>
  <div  id="aaaaa" style="background-Color:#abcdef">
  asdf
  </div>
 </body>
</html>

어떤 팝업창에 뜨게되는 페이지에서 특정 값을 타이머를 통해 얻어올수 있음.

'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글

철호야! 공부하자!  (0) 2009.05.08
리피터 사용!!  (0) 2009.05.08
Table Row-> Select, MouseOver, Out관련  (0) 2009.05.08
트리뷰 노드 추가 재귀 함수.  (0) 2009.05.02
페이징 컨트롤러  (0) 2009.05.01


SBS 전자 자막의뢰 Web사이트 구축하면서 
로그파일관리 페이지를 만들면서 작성했던 부분임.
간단한 재귀로 하위 디렉토리들을 추가 하게 됨. 

 /// <summary>
 /// 폴더 이하 파일&디렉토리 검색해서 트리뷰에 추가하는 재귀 함수
 /// </summary>
 /// <param name="sDirectoryName"></param>
 /// <returns></returns>
 private TreeNode GetTreeNodes(string sDirectoryName, string rootPath)
 {

  string[] fileNames = Directory.GetFiles(sDirectoryName);
  string[] directoryNames = Directory.GetDirectories(sDirectoryName);

  int fileCount = fileNames.Length;

  //TreeNode root = new TreeNode(sDirectoryName.Replace(rootPath, ""));
  TreeNode root = new TreeNode(string.Format("{0} : {1}", sDirectoryName.Replace(rootPath, ""), fileCount), sDirectoryName.Replace(rootPath, ""));

  foreach (string dir in directoryNames)
  {
   if( dir.Replace(sDirectoryName+"\\","") == ".svn") continue;
   TreeNode tnode = GetTreeNodes(dir, sDirectoryName+@"\");    // 재귀!
   tnode.SelectAction = TreeNodeSelectAction.Select;      // 포스트백 발생하지 않게 됨.
   root.ChildNodes.Add(tnode);
  }
  //foreach (string fileName in fileNames)
  //{
  //    TreeNode tnode2 = new TreeNode(fileName.Replace(sDirectoryName + "\\", ""));
  //    tnode2.SelectAction = TreeNodeSelectAction.None;
  //    root.ChildNodes.Add(tnode2);
  //}
  root.SelectAction = TreeNodeSelectAction.Select;
  return root;
 }




페이징 컨트롤러를 만들었던것을 올림.

invalid-file

cs파일

invalid-file

ascx파일


개선 할점 : 흠 사용할때 좀 복잡했던것으로 기억함.( 디자인모드에서 이벤트 등록이 안됨 )

   protected void Page_Load(object sender, EventArgs e)
    {
        PageNavigator1.PageClick += new ClickEvent(PageNavigator1_PageClick);
       
    }

    void PageNavigator1_PageClick(PageEventArgs e)
    {
        throw new Exception("The method or operation is not implemented.");
    }

이렇게 페이지마다 등록해서 썼던걸로 기억함.