2012-07-16 2 views
1

ASP.NET 웹 페이지 업데이트 패널에서 참조하고있는 전역 변수가 있습니다. 업데이트 패널에서 일어나는 일은 다음과 같습니다.업데이트 섹션이 발생하면 목록이 삭제됩니다.

accidentListType.Add(Convert.ToString(AccidentDescription.SelectedItem)); 
     if (Atfault.Checked) 
     { 
      accidentAtFault.Add("True"); 
     } 
     else accidentAtFault.Add("False"); 
     DateTime newDate = new DateTime(Convert.ToInt32(accidentyear.Text), Convert.ToInt32(accidentmonth.Text), 1); 
     accidentListDate.Add(newDate); 
     TestAccidentLabel.Text = "Success! " + newDate.ToString(); 

기본적으로 버튼을 클릭 할 때마다 목록에 다른 멤버가 추가로 추가됩니다. 그러나 코드를 실행할 때마다 새로운 색인이 신비하게 삭제되기 때문에 모든 사고를 데이터베이스에 추가 할 때 사고를 추가 할 필요가 없습니다. 사고 데이터베이스의 입력 중 하나가 테이블이 생성 될 때 끌어 오는 다른 테이블의 ID이기 때문에 동적으로 추가 할 수 없습니다. 따라서 어쨌든 모든 테이블을 추가해야합니다.

아무도 도와 줄 수 있습니까? 오후 8시 30 분 P.S. 이것은 처음 게시하는 게시판이기 때문에 지저분한 경우 사과드립니다.

+0

각 세션간에 항목이 삭제 되었습니까? 그렇다면 데이터를 데이터베이스로 옮기는 코드는 어디에 있습니까? – Botonomous

+0

나는 데이터베이스에 항목을 옮기려고하지도 않는다. 나는 결국 데이터베이스에 들어갈 목록을 채우기 위해 노력하고 있습니다. 그러나 새로운 항목을 추가하려고 할 때마다, 그것은 신비하게도 사라집니다. 디버그 모드에서 직접 변수 창을 사용하여 추가 한 후에 Count 변수가 증가하지만 핸들러 코드가 끝나고 버튼을 다시 누르면 Count 함수가 Count가 0임을 확인합니다. –

+0

사고 목록을 poststate/session/anywhere에 저장하여 포스트 백간에이를 유지 하시겠습니까? –

답변

1

누락 된 항목이 두 가지 있습니다. 귀하의 목록은 전역이지만, 요청이있을 때마다 페이지 객체가 파괴되기 때문에 세션에 목록을 보관할 때까지 값이 유지되지 않습니다. 또한 새로운 값을 추가하기 위해 세션에서 보유한 목록을 재사용해야합니다. 다음과 같이하십시오.

//at the start of block 
//check if there is anything in Session 
//if not, create a new list 
if(Session["accidentListType"] == null) 
    accidentListType = new List<string>(); 
else //else a list already exists in session , use this list and add object to this list 
    accidentListType = Session["accidentListType"] as List<string>; 

//do your processing, as you are doing 

//and at the end of bloack store the object to the session 
Session["accidentListType"] = accidentListType 
+0

행운이 없습니다. 나는 그것을 시도했지만 Session 값조차도 계속 지워졌다. –

+0

여기에 전체 코드를 게시 할 수 있습니까? – Anand

+1

결코 신경 쓰지 마세요. 맞았 어. 방금 null로 다시 초기화되었습니다. 정말 고마워! –

관련 문제