2015-02-02 2 views
0
ArrayList aList = new ArrayList(); 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    aList.Add(DropDownList1.SelectedValue); 
    ListBox1.DataSource = aList; 
    ListBox1.DataBind(); 
} 

위의 코드는 마지막으로 삽입 된 데이터 만 배열 목록에 바인딩합니다.ASP.net의 ArrayList에 개체 저장

목록에 이전에 추가 된 데이터는 표시되지 않습니다.

목록에 표시된 항목을 유지하는 방법은 무엇입니까?

+2

페이지가 HTML로 렌더링되고 클라이언트로 전송 된 후 ASP.NET의 모든 개체가 페이지 수명주기의 끝에 폐기되기 때문에. 당신은리스트를 다시 만들어야한다. (나는'ArrayList' 대신에'List '를 사용하도록 강력히 권고한다.) –

+0

에 동의하고, ArrayList에 일반적인'List '을 선호합니다. – Jodrell

답변

2

웹 페이지에 요청을 게시 할 때마다 목록이 다시 작성되므로 영구적이지 않습니다.

당신은 지속적으로이를 저장하는 몇 가지 옵션이 있습니다

  • 데이터베이스를;
  • Session 개체;
  • ViewState 개체;
  • 일부는 다른 목적으로 만 사용됩니다.
    protected void Button1_Click(object sender, EventArgs e) 
    { 
        ArrayList aList = (ArrayList)this.Session["someParameter"]; 
    
        if (aList == null) 
        { 
         this.Session["someParameter"] = aList = new ArrayList(); 
        } 
    
        aList.Add(DropDownList1.SelectedValue); 
        ListBox1.DataSource = aList; 
        ListBox1.DataBind(); 
    } 
    

    는 또한, 더 이상 ArrayList을 사용하지 마십시오,하지만 일반 List<T> :
Session를 사용하여 예를 들어

.

+1

과 다른 하나 : 쿠키! –

+0

고마워요 패트릭. 그것의 지금 잘 작동합니다. – Karthikeyan

+0

모든 페이지에서 목록이 전체 세션에서 공유됩니다. 원하지 않는다면'ViewState'와 같은 또 다른 저장 메커니즘을 사용하십시오. –