0

여기서 잘못된 것은 무엇입니까? 나는 ViewState를 작동시킬 수 없습니다ViewState가 이전 페이지의 값을 기억하지 못함 init

protected void Page_Init(object sender, EventArgs e) 
{ 
      Method1(); 
} 

private void Method1() 
{ 
    Element.Click += new EventHandler(Button_Click); 
} 
public void Button_Click(object sender, EventArgs e) 
{ 
    if(ViewState["x"] != null) 
       // use ViewState["x"] from previous Page Init 
    //do processing ... 

    //in the end, store value for future use 
    ViewState["x"] = myLabel.Text; 
} 

내가 그렇게 첫 페이지 초기화가 나는 변수의 ViewState를 이전 값에서 읽을 이러한 변경, 그 전에, 내가 변경을 할 경우, 트리거, 페이지를 다시로드하고 I 처리를 수행 한 후, 다음 번 사용을 위해이 값을 대체하십시오 (다음번 Page Init에서).

문제는 당신에게 감사 나는 이전 페이지 초기화 에 준 값을 기억/저장하지 않습니다, 내의 ViewState가 null입니다

+1

같은 간단한 사용 세션 변수 아래의 답변으로 문제가 해결되면 다른 사용자에게 허용되는 것으로 표시하십시오. –

+0

질문이 해결 되었습니까? 승인 된 답변으로 표시하십시오. – fuzz

답변

1

당신은 할 수 없습니다 ViewState 페이지의 특정 실제로 저장 될 때 렌더링 된 페이지의 HTML에. POST 또는 쿼리 문자열을 통해 값을 전달하거나 세션에 저장해야하거나 다른 페이지에서 액세스 할 수있는 asp.net 캐시의 값을 캐시 할 수 있습니다.

ViewState을 사용하면 다시 게시 할 때 동일한 페이지로 데이터를 전송할 수 있습니다. ViewState의 설정 방법

:

ViewState["FirstName"] = "SuperMan";

포스트 백에 ViewState를 검색하는 경우 : 다른에 한 페이지로 데이터를 전송하려면 컨텍스트를 사용할 수 있습니다

string sFirstName = ViewState["FirstName"].ToString();

.

Page1.aspx.cs

this.Context.Items["FirstName"] = "SuperMan";

Page2.aspx.cs는

string sFirstName = this.Context.Items["FirstName"].ToString();

당신은 필요한 공통 데이터를 보존하기 Session 변수를 사용할 수 있습니다 거의 모든 페이지 또는 특정 사용자의 응용 프로그램 전반에 걸쳐 Session의 설정 방법

:

Session["FirstName"] = "SuperMan";

이 코드에 적용 : 세션까지 모든 페이지에서 Session를 검색

public void Button_Click(object sender, EventArgs e) 
{ 
    if (Session["x"] != null) 
    { 
     // do processing 

     // in the end, store value for future use 
     Session["x"] = myLabel.Text; 
    } 
} 

유효 :

string sFirstName = Session["FirstName"].ToString();

동일한 방법으로 Cookies도 사용할 수 있지만 쿠키는 클라이언트에 저장됩니다.

+0

Gotnull, 버튼 클릭시 어떻게 값을 전달해야합니까? –

+0

귀하의 질문에 이미 답변했습니다. – fuzz

+0

'ViewState [ "x"]'대신'Session [ "x"]'를 사용하십시오. – fuzz

0

의 ViewState는 그 페이지에서 값을 기억하고 세션 변수 쿼리 문자열처럼 사용하기 위해, 다른 페이지에 다른 세션 상태를 값을 전달할 수 없습니다 등

public void Button_Click(object sender, EventArgs e) 
{ 
    if(Session["x"] != null) 
       // use Session["x"] from previous Page Init 
    //do processing ... 

    //in the end, store value for future use 
    Session["x"] = myLabel.Text; 
} 
+0

이 세션에서 데이터를 저장합니다. Session [ "x"] = myLabel.Text; 프로젝트의 어느 위치에서나 사용하십시오. –

관련 문제