2011-12-07 3 views
0

내 List <을 가져오고 설정하려고 시도하고 있습니다. 내 의도는 코드로 분명하다고 생각합니다. 나는 목록이 포스트 백 전체에 남아 있기를 원하기 때문에 그 안에 느슨한 데이터는 없다.List <>

내가 뭘 잘못하고 있니? AlertPopUp 덕택에 Get이 실행되지만 Set은 실행되지 않음을 알 수 있습니다. 따라서 List는 여러 항목을 포함해야 할 때 containsint zero 항목으로 돌아옵니다. 나는 그것의 추가() 방법으로 목록을 변경하기 때문에

private List<string> accountIDsSelectedForDeletion = new List<string>(); 
public List<string> AccountIDsSelectedForDeletion 
{ 
    get { 
     if (ViewState["AccountIDsSelectedForDeletion"]!= null) 
     { 
      accountIDsSelectedForDeletion = ViewState["AccountIDsSelectedForDeletion"] as List<string>; 
      AlertPopUp.QuickDebugMessage("getting list from viewstate. Count: "+ accountIDsSelectedForDeletion.Count);    
     } 
     AlertPopUp.QuickDebugMessage("returning list"); 
     return accountIDsSelectedForDeletion; 

    } 
    set { 
     AlertPopUp.QuickDebugMessage("setting list to viewstate. Count: " + accountIDsSelectedForDeletion.Count); 
     accountIDsSelectedForDeletion = value; 

     ViewState["AccountIDsSelectedForDeletion"] = accountIDsSelectedForDeletion; 
    } 
+0

Add() 메서드로 List를 변경했기 때문일 수 있습니까? – Lautaro

+0

이 목록에 항목을 추가하는시기와 방법은 무엇입니까? –

+0

getter에서 이중 검색을 수행합니다. 'var list = ViewState [ ""]를 List로 사용하십시오. ; if (list! = null)'. – abatishchev

답변

0

가 될 수 있을까?

요컨대, 그렇습니다. .Add()은 목록을 변경하고있는 반면 Set 속성은 목록에 세트 조각으로 작용합니다.

여기서 수행하려는 작업을 수행하려면 List에서 상속 된 유형을 만들어서 AddRemove (내선형, 그 밖에도 여러 가지) 메소드에 코드를 삽입 할 수 있습니다. 마찬가지로 : 그럼 그냥 페이지 레벨 클래스에 이러한 유형의 목록을 대체

public class MyList 
{ 
    private List<string> listItems { get; set; } 
    //don't expose the list in a mutable state, IEnumerable instead 
    public IEnumerable<string> Items { get { return this.listItems; } } 

    public void Add(string NewItem) 
    { 
     this.ListItems.Add(NewItem); 
    } 
} 

:

//not syntatically correct sorry 
public class MyList : List<string> 
{ 
    public override Add(string NewItem) 
    { 
     //do a extra peristance step here 
     // 
     me.Add(NewItem); 
    } 
} 

또는 개인 목록 <를 래핑>하고 추가를 관리하는 클래스가/어쩌면 같은 방법을 제거 .

덧붙여서 ViewState을 계속 사용하면 페이지 당 와이어를 위아래로 보내야하는 정보의 양이 늘어납니다. Session 또는 Cache 개체를 고려 했습니까?

관련 문제