Asp.Net] Razor, MVC 스터디..
웹을 진행한지 몇년 된것 같으니... 되새기는 셈 치고 살짝 공부...
웹도 많은게 바뀐듯...한데 윈폼, 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 = " ";
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;
}
'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글
Asp.Net] Razor, MVC 스터디.. (0) | 2018.03.15 |
---|---|
메뉴] 자바스크립트로 만든 메뉴객체를 이용. (0) | 2009.05.09 |
철호야! 공부하자! (0) | 2009.05.08 |
리피터 사용!! (0) | 2009.05.08 |
Table Row-> Select, MouseOver, Out관련 (0) | 2009.05.08 |
메뉴] 자바스크립트로 만든 메뉴객체를 이용.
'# 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년이 다되어 읽어보니 하하... 설명을 해주어야 했던것들이 많이 보이는...
파워포인트는 역시 어렵다!
'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글
달력을 만들때... (0) | 2009.05.11 |
---|---|
메뉴] 자바스크립트로 만든 메뉴객체를 이용. (0) | 2009.05.09 |
리피터 사용!! (0) | 2009.05.08 |
Table Row-> Select, MouseOver, Out관련 (0) | 2009.05.08 |
기존의 웹프로젝트 페이지를 그대로 이용하기. (0) | 2009.05.08 |
리피터 사용!!
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 프로젝트 소스
'# 2) .Net ( Vs 2005 ) > WebForm' 카테고리의 다른 글
메뉴] 자바스크립트로 만든 메뉴객체를 이용. (0) | 2009.05.09 |
---|---|
철호야! 공부하자! (0) | 2009.05.08 |
Table Row-> Select, MouseOver, Out관련 (0) | 2009.05.08 |
기존의 웹프로젝트 페이지를 그대로 이용하기. (0) | 2009.05.08 |
트리뷰 노드 추가 재귀 함수. (0) | 2009.05.02 |
Table Row-> Select, MouseOver, Out관련
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;
}
'# 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.08 |
페이징 컨트롤러 (0) | 2009.05.01 |
페이징 컨트롤러
페이징 컨트롤러를 만들었던것을 올림.
cs파일
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.");
}
이렇게 페이지마다 등록해서 썼던걸로 기억함.
'# 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.08 |
트리뷰 노드 추가 재귀 함수. (0) | 2009.05.02 |