.razor 에서 foreach를 사용하여 생성한 버튼에 @onclick을 썼을때...
오늘 PLC 모니터링 기능을 추가하면서 웹 테스트를 하는데...
이상한 현상이???
.razor 안에서 ...
@code{
MonitoringInfo info = null;
}
@foreach( var brd in bridges ) {
info = Service.GetMonitoringInfo( brd );
<div ... >
<button @onclick=( e => EditDangerConfirm( info.ID, info.DangerValue) ) >
</div>
}
이런 식으로 썼는데 bridges를 순회하면서 html코드를 생성하고
@onclick 이벤트에 연결 했는데...
화면에서 테스트를 해보니... 무조건 마지막에 연결되었던 객체 정보로 뜬다.
원인 ::
@onclick이 발생하는 때에는 데이타가 계속 덮어씌여져서 가장 마지막 요소를 가지고 오픈하니까 ... 엉뚱한게 보여진다.
구글링을 해보니... 저렇게 쓰면 안된단다.. 생각해보니.. 그게 맞는 것도 같고..
해결방법 ::
@foreach( var brd in bridges ) {
MonitoringInfo info = Service.GetMonitoringInfo( brd );
<div ... >
<button @onclick=( e => EditDangerConfirm( info.ID, info.DangerValue) ) >
</div>
}
독립변수가 되겠끔.
MonitoringInfo info ; 선언을 foreach 안쪽으로 내렸다.
이렇게 하면 @onclick되는 시점에 바인딩될때의 변수값들을 가지고 컨펌창이 뜬다.
'# 4) .Net ( Vs 2010 ) > Web Matrix _Razor' 카테고리의 다른 글
Web Matrix] 구조화 컨텐츠... Layout (0) | 2011.04.20 |
---|---|
Web Metrix ] 첫만남? (0) | 2011.04.19 |
Web Matrix] 구조화 컨텐츠... Layout
레이아웃 이용하는 방법을 확인하였다.
_파일명.cshtml _ 는 참조페이지라는 의미란다. 직접 호출할수 없다고 한다.( 해볼까낭? )
@RenderPage( "_호출페이지") 현재 페이지 호출페이지를 Include 한다.
위 결과물은 다음과 같다.
화살표는 읽히는 방향으로 그려두었다. 자세한건 pdf 참조.
실행페이지는 Content.cshtml 이다.
'# 4) .Net ( Vs 2010 ) > Web Matrix _Razor' 카테고리의 다른 글
.razor 에서 foreach를 사용하여 생성한 버튼에 @onclick을 썼을때... (0) | 2023.12.13 |
---|---|
Web Metrix ] 첫만남? (0) | 2011.04.19 |
Web Metrix ] 첫만남?
오... 지난번 동영상을 훈스 강좌란에서 본 이후 해봐야지 했던건데..
디게 신기하넹...
코드치는게 좀 손에 안익어서 더디지만... 처음 다뤄본 느낌으론 재미있다!?
Sqler의 Konan 김대우님 ( http://www.Sqler.com ); 에서 배포한 한들 eBook을 보고 해보는 중임.
전체코드는 위 사이트에서 무료로 배포된 pdf를 보고...
@* 주석 *@
@{ } 코드블럭
@변수 또는 객체
: 지원되는 객체에 대해서는 잘 모르겠넹... StopWatch를 걸어봤는데.. 제공된 컨텐츠는 아니라고 안됨.
: string.Format() 이 되는거보면... .net 객체들이 지원이 되는것 같은데... 차츰 알아보자.
-- 샘플...
@{ //코드블럭임
//주석 방법 1
var k = "코드블럭K";
}
@* 주석2 이라는데 ... *@
@k<br/>
Hello World @string.Format("뷁{0}", " 이건뭐? 레이져! ")
@* .Net객체를 활용할 수 있는듯 함. *@
@ServerInfo.GetHtml() @* 서버 정보가 나타남. *@
-- 샘플2
Post라는데...
@{
var total = 0;
if( IsPost )
// IsPost ... 포스트백 체크 인가보다.
{
var num1 = Request["text1"];
// post로 넘겨받은 form 내 text1, text2 를 똑같이 얻어올 수 있네
var num2 = Request["text2"];
total = num1.AsInt() + num2.AsInt();
// AsInt() 로 숫자로 변환하는 부분임.
}
}
</head>
<body>
<p>두개의 숫자를 넣고 "더하기" 버튼을 클릭하세요~</p> <p></p> <form action="" method="post"> <p> <label for="text1">숫자(1):</label> <input type="text" name="text1" /> </p> <p> <label for="text2">숫자(2):</label> <input type="text" name="text2" /> </p>
<p> <input type="submit" value="더하기" /> </p>
</form>
<h2>두 숫자의 합은: @total 입니다.</h2>
</body>
왠지 재미있다...
동영상에서 보던것대로 간단하네... 구현도 편하고...?
다만 지금 웹 구현 방법이나 코딩 기준들이 쉽게 바뀌지 않을텐데...
적용하려면? 또는 그에 맞는 개발방법론이 따로 나오려나??? 음...
빙산에 일각만 보고 추측하기 어려우니 쭉~~ 가봐야징.
'# 4) .Net ( Vs 2010 ) > Web Matrix _Razor' 카테고리의 다른 글
.razor 에서 foreach를 사용하여 생성한 버튼에 @onclick을 썼을때... (0) | 2023.12.13 |
---|---|
Web Matrix] 구조화 컨텐츠... Layout (0) | 2011.04.20 |