2012-05-23 2 views
0

안녕하세요 남자가 여기 asp.net 상태 managenment 관한 한 가지 문제가 있습니다. 하나의 viewstate.Is에 저장할 수있는 세 가지 값을 저장할 또는 단일 viewstate 변수에 대한 것입니다.단일 viewstate 개체에 여러 값을 저장

기본 요구 사항은 그리드 뷰 rowcommand 세 가지 값을 찾기위한 이벤트 인을 사용하고 있습니다. 이 값을 사용하고 싶습니다. button_click event.it는 직접적으로 가능하지 않으므로 viewstate를 선호합니다.

이렇게 할 수있는 다른 방법이 있다면 게시 할 수 있습니다. 저는 .net 개발에서 새로 도입되었으므로 당신에 대한 지식을 공유하십시오.

+0

변수를 하나의 변수에 넣을 이유가 있습니까? – nunespascal

+0

ASP.NET MVC에서 ViewState와 같은 개념이 없으므로 'asp.net-mvc' 태그를 질문에서 삭제했습니다. –

답변

0

구분 기호를 사용할 수 있습니다. 예를 들어, :

값을 "~"로 나누려면 값을 분할하십시오.

+1

그리고 항목 중 하나에'~'가 포함되어 있습니까? – tomfanning

+0

@tomfanning 나는 나의 대답에서 당신이 어떤 seperator (당신의 데이터와 필요에 따라)를 선택할 수 있다고 말했다. –

0

원하는 구분 기호를 사용할 수 있습니다. 그러나 세 개의 별도 변수를 사용하면 코드가 훨씬 더 명확 해집니다.

.net은 viewstate를 처리합니다. 하나의 변수를 사용하는 것은 불필요한 합병증처럼 보입니다.

1

클래스를 만들고 Serializable 특성으로 표시 할 수 있습니다. 그런 다음 해당 클래스의 목록 인스턴스를 만들고 viewstate에 1 항목으로 저장하십시오. 이것은 많은 가치를 저장할 때입니다. 그러나 당신은 간단한 경우가 생각된다

[Serializable()] 
class SomeData 
{ 

    public string Value1 {get; set;} 
    public string Value2 {get; set;} 
    public string Value3 {get; set;} 

} 

추가가 ViewState를 위해 :

var data = (SomeData)ViewState["myData"]; 
Label1.Text = string.Format("{0}, {1}, {2}", 
    data.Value1, data.Value2, data.Value3); 
+0

원한다면 대답으로 표시하십시오 ... – deostroll

0

시나리오에서 당신이 viewstate가 필요하지 않습니다 : 검색 다시 ViewState에에서 포스트 백에

ViewState.Add("myData", new SomeData() {Value1 = "A", 
    Value2 = "B", 
    Value2 = "3"}); 

- rowcommand와 button_click이 모두 같은 포스트 백에서 실행되기 때문에 코드 숨김 변수에 변수를 저장할 수 있습니다. 포스트 백간에 항목이 필요한 경우에만 ViewState에 항목을 저장하면됩니다.

+0

버튼이 Modelpopup Extender에 있습니다 (gridview에서 버튼 클릭). rowcommand 모델 팝업이 열리고 해당 팝업 (button_click)에 Button이 있습니다. –

+0

그래도 여전히 ViewState가 필요한지 확실하지 않습니다. button_click에서 gridview 행을 순환시킬 수는 없습니까? 하지만 세 가지 ViewState 속성을 사용할 수 없다면 –

+0

@FrankJames ViewState 속성의 예는'private string Item1 {get {return (string} ViewState [ "Item1"];} set} {ViewState [ "Item1"] = 값;}}' –

관련 문제