.NET2009. 2. 18. 10:02

TextBox.ReadOnly

.NET1.0에서 .NET2.0 으로의 업그레이드 이후 화면이 갱신될 때
키값이 되는 텍스트의 값을 불러오지 못하는 현상이 발생했다.

원인을 찾아본 결과, .NET2.0 에서는 ReadOnly로 설정되어 있는 텍스트값은
서버에서 처리를 하지 않는 모양이다.

MSDN에서 찾은 문서 :
http://msdn.microsoft.com/ko-kr/library/system.web.ui.webcontrols.textbox.readonly(VS.80).aspx

이 문서 내의 아래와 같은 부분을 보자.

다시 게시가 발생하면 ReadOnly 속성이 true로 설정된 TextBox 컨트롤의 Text 값이 서버에 보내지지만 서버에서는 읽기 전용 텍스트 상자에 대한 처리를 수행하지 않습니다. 따라서 악의적인 사용자가 읽기 전용인 Text 값을 변경할 수 없습니다. 서버측 코드에서 수정되지 않은 경우 Text 속성 값은 뷰 상태에 유지됩니다.

'다시 게시'라는 맛깔스런 번역과 함께 해당 사항이 기술되어 있다.

아무튼 원인을 알았으니 대책을 찾아야 겠지.
ReadOnly속성의 텍스트값을 자동으로 처리 하지 않는다고 하니
'다시 게시'되기 전의 텍스트 값을 '다시 게시'된 다음으로 강제로 때려박을 수 밖에.
'다시 게시' 로직에 아래와 같은 부분을 넣어주었다.

txtTest.Text = Request["txtTest"].ToString();

근데 제대로 고친 건지 자신이 없다;;;;
그래서 수정 후 좀 더 찾아본 결과.

태오사마 사이트에 다음과 같은 내용을 발견.
http://www.taeyo.pe.kr/Columns/View.aspx?SEQ=204&PSEQ=8&IDX=0
우오오오~ 잘 나와있당.


Posted by miing
.NET2008. 9. 4. 11:37


ASP.NET에서 쿼리를 날릴 때,
Form단의 TimeOut설정은 WebClientProtocol.TimeOut 이고,
http://msdn.microsoft.com/ko-kr/library/system.web.services.protocols.webclientprotocol.timeout.aspx

SVC단에서 DB의 TimeOut설정은 OleDbCommand.CommandTimeOut이다.
http://msdn.microsoft.com/ko-kr/library/system.data.oledb.oledbcommand.commandtimeout(VS.80).aspx

MS SQL Server만 사용한다면 DB의 TimeOut은 OleDbCommand보다 SQL용을 사용하는게 나을 듯.

Form단의 기본값은 100초.
SVC단의 기본값은 30초.

IIS에서 세션 TimeOut설정도 확인.
Posted by miing
.NET2008. 8. 18. 13:31


TextBox가 multiline모드일 경우 maxlength 체크

asp때도 그랬지만, asp.net에서도
TextBox를 multiline모드로 설정하면 maxlength 속성이 작용하지 않는다.
결국 javascript로 작성할 수 밖에 없다는 결론.

<script language = "javascript">
function Count(text, long)
{
  var maxlength = new Number(long);
  if(text.value.length > maxlength){
    text.value = text.value.substring(0,maxlength);
    alert("Only" + long + "chars");}
}
</script>

사용할 때는 해당 textbox의 onKeyUp 속성값과 onChange 속성값에
onKeyUp = "Count(this, 200)" onChange = "Count(this, 200)"
이런 식으로 설정해주면 된다.

이때, onKeyUp 속성과 onChange 속성 값을 해당 TextBox에 작성하려고 하면
친절한 닷넷씨가 TextBox의 속성이 아니라고 경고하는데 살포시 무시하자.
두 속성은 System.Windows.Forms에서 상속받는 값.(일껄?)

Posted by miing
.NET2008. 8. 1. 14:33


VS 2003 Project -> VS 2005 Project Upgrade Tutorial

올것이 왔다.

.NET Framework 1.0
Visual Studio .NET(2002) 으로 개발된 우리 웹솔루션. 
드디어 업그레이드를 한다고 한다.
업그레이드 작업에 협조 요청이 들어온 만큼...
찌질개발자인 나를 찌질하지 않다고 믿고있는 만큼...(별로 일부러 속인건 아니다;;;)
남의 회사에서 돈 꼬박꼬박 받고 있는 만큼...
일은 제대로 해 줘야 되기에... 오늘부터 죽어라고 일을 해야 될 판...

근데 시작하자마자 문제에 봉착!!!!
원래는 VS .NET으로 개발되어 있는 솔루션 소스를 그대로 VS 2005에서 열어서
소스를 자동으로 컨버전한 다음에(VS가 알아서 해준다)...
자질구레 간단한 문제만 좀 수정하면 되겠지 라고 생각했다.
근데 이게 왠걸....컨버전을 했음에도 불구하고 페이지는 실행되지 않고...
.NET 1.0 그러니까 VS .NET 때와는 너무나도 달라져버린 모양새에 엄청 당황스럽다.

결국 .NET 2.0에 대한 공부를 본격적으로 해야 되니...
일단은 업그레이드 하는 법에 대해서 집중적으로.
검색으로 찾은 정보.... 구스리 아저씨의 블로그....
http://weblogs.asp.net/scottgu/archive/2005/12/18/433484.aspx
http://webproject.scottgu.com/
http://webproject.scottgu.com/CSharp/Default.aspx
http://webproject.scottgu.com/CSharp/migration/migration.aspx
실제로 직접적인 내용을 담고 있는 건 마지막 링크이지만...
어차피 다 공부해야 할 것들. 근데...영어의 압박이... -_-

링크추가.
http://msdn.microsoft.com/en-us/asp.net/aa336650.aspx


Posted by miing
.NET2008. 7. 28. 12:04

MicroSoft Visual Studio .NET(2002) Tips!!

여기저기 돌아다니며 기껏 얻어들은 Tip들도 써먹지 않으면 잊어버린다.
물론 자주 쓰는건 자주 쓰니까 잘 쓰고 있지만...
암턴... 인간은 부족한 기억력을 보완하기 위해 메모의 기술을 발명했다고 한다.
난 인간이다.

1.ToolBox 사용

디자인 화면에서는 이곳에 여러 컨트롤들이 등록되어 있지만 코드 화면으로 가면 텅텅 비어버리기에 디자인 화면에서만 쓰는 줄 알았다.

그치만 코드 화면에서는 각 프로젝트마다 자주 쓰는 코드를 넣어 둘 수가 있다는 것!!

쓰는 법은..일단, 사용할 코드나 텍스트를 범위선택한 다음 ToolBox 드래그 드롭해서 ToolBox에 저장 해 둔 다음 저장한 코드를 삽입하고 싶은 곳에 커서를 놓고 ToobBox의 코드를 더블클릭하면 끝.

ToobBox표시 단축키 : Ctrl+Alt+X


2.Clipboard Ring

ToolBox를 표시하면 '클립보드 링' 이라는 탭(?)이 있다.

이놈은 가장 최근에 클립보드에 저장된 항목을 12개 까지 역순으로 불러온다.
쓰는 법은 ToolBox에 저장해 둔 코드를 삽입하는 법과 동일.

Clipboard Ring 단축키 : Ctrl+Shift+V

3.Cutting, Copying, Deleting, and Transposing a Single Line


Line
 전체를 copy 경우는 범위를 지정할 필요없이 Ctrl+C 눌러도 .
자르기도 마찬가지로 Ctrl+X만. 삭제는 Ctrl+L.

현재 줄과 아래줄의 위치를 바꾸려면 Alt+Shift+T

4.문서 서식


선택한
범위 코드의 들여쓰기, 내어쓰기 등을 자동으로 맞춰 .
'
편집'->'고급'->'문서서식' :  Ctrl+K+F

닷넷2002 닷넷2003에서는 C# VB.NET코드에서만 동작.
닷넷2005에서는 XML HTML코드에서도 동작.


5.Creating Rectangular Selections


간격을 무시하고 사각형 모양의 블럭선택을 가능하게 .

'Alt+마우스 드래그' 선택.


6.Going to a Line Number


해당
라인으로 이동. Ctrl+G 또는 하단 status bar에서 표시가 곳을 더블클릭.


7.Finding and Highlighting Matching Tokens


 
"{"
  "}", "#region" "#endregion"처럼 서로 연관되는 token 찾을 때는

Ctrl+], 연결되는 token사이의 code 선택할때는 Ctrl+Shift+]


네이뇬에서 찾아 정리하던 중. 원본인 듯한 블로그를 발견!!
아놔. 빨리 발견했으면 링크만 걸고 날로 먹을 수 있었는뎁.
저작권의 무법지대 '네이뇬 지식인듯한in' 이라고 멋대로 생각해 봄.

Posted by miing