2009-06-08 4 views
4

텍스트 상자에 입력 한 내용이 저장되지 않습니다. 누군가 왜 이것이 일어나고 있는지 말해 줄 수 있습니까? 여기 내가 사용하고 단순화 된 코드입니다 :텍스트 상자 값 저장 안함

에서 .aspx

<body> 
    <form id="form1" runat="server"> 
    <div> 
    Try this: 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> 
    </div> 
    </form> 
</body> 

.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    TextBox1.Text = "Test 1"; 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Response.Write(TextBox1.Text); 
} 

Response.Write를 항상 "테스트 1"로 나옵니다 상관없이 I 그것을 넣으십시오. 도움 주셔서 감사합니다.

+0

이벤트 핸들러에서 Response.Write()를 사용하지 마십시오. 페이지가 아직 렌더링을 시작하지 않았기 때문에 텍스트가 잘못된 위치에 저장 될 가능성이 큽니다. 대신 레이블 또는 리터럴 컨트롤을 사용하십시오. –

답변

17

설정하기 전에 Page_Load 이벤트에서 다시 게시를 확인해야합니다. 그렇지 않으면 Page_Load는 항상 텍스트 상자에 입력 한 내용을 덮어 씁니다.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
    TextBox1.Text = "Test 1"; 
    } 
} 
관련 문제