<%@ Page Language="C#" %>
<script language=C# runat=server>
static string array ="";
void Page_Load(object source, EventArgs e)
{
if(IsPostBack) //페이지 로드할때 바로 시작되지 않게 한다.
{
label1.Visible = true;
string[] membername = new string[]{"이름1","이름2","이름3","이름4","이름5","이름6","이름7","이름8","이름9","이름10"};
Random r = new Random();
int intnumber= Convert.ToInt32(r.Next(10));
if(array.IndexOf(Convert.ToString(intnumber))<0) // array에서 중복값을 없앤다.
{
label1.Text = membername[intnumber] ;
array += intnumber.ToString();
}
else
{
label1.Text = "다시 눌러주세요";
}
}
}
</script>
<HTML>
<HEAD>
</HEAD>
<BODY>
<form runat="server">
<center><h1>다음 발표할 사람은 누구입니까?<h1>
<asp:button id="mybutton" runat="server" text="눌러주세요"/><br>
<asp:label id="label1" runat="server" visible=true/><br>
</center>
</form>
</BODY>
</HTML>
여기서 array 변수를 static으로 쓰니깐 array에 숫자를 스트링으로해서 랜덤으로 메모리상에 더해지게 됩니다 그런데 문제점이 브라우저를 다시 실행 시켜도 static 변수에 메모리가 다시 초기화가 안되네요.
브라우저를 닫을때 static 변수에 있는 메모리 값을 지을수 있는 방법이 있을까요?.
아니면
array 변수 3457383 이런식으로 연속하게 메모리에 저장되게 static말고 다른방법은 없을까요?..
카페 게시글
ASP.NET 질문
제가 짜본건데요... static 변수를 사용해서 랜덤으로 사람이름을 나오게 한건데요...
맑은바람
추천 0
조회 72
04.04.19 00:02
댓글 5
북마크
번역하기
공유하기
기능 더보기
다음검색
첫댓글 Dispose()라는 함수가 있다고는 하는데요. 더 알아볼께요.
흠..차라리 label을 하나 더 만드셔서 거기다 저장해 보심이 어떨지?..물론 속성은 unvisible로염...
라벨 만들어도 제대로 안되요....ㅎㅎ... 방법을 알았냈어요..열라 간단한 방법 if(ispostback){} else{ array=""}; 이거 집어넣으니깐 되네요...ㅎㅎ..
static키워드를 쓰면 메모리에 상주하게 되지요...프로그램이 완전히 끝날때까지..... 고로..... static키워드를 쓰지 말고 사용하시면 그페이지가 다 읽히게 되고 다시 로딩할 때는 초기화가 다시 되지요...
맑은바람님..성공하셨다니..다행이네요.