2013-07-25 3 views
0

I했습니다 하나 개의 텍스트 상자와 하나의 업데이트 버튼 :텍스트 상자의 업데이트 된 텍스트를 가져올 수 없습니다

텍스트 상자 :

<asp:TextBox ID="txtFName" runat="server"></asp:TextBox> 

업데이트 버튼 :

<asp:Button ID="btnUpdFName" runat="server"Text="Update" onclick="btnUpdFName_Click"/> 

페이지로드 이벤트에서 수행중인 작업 데이터베이스에서 이름을 가져 와서 처리 중입니다. 텍스트 상자에 다음과 같이

txtFName.Text = dt.Rows[0][1].ToString(); 

을 지금은 위와 같이 텍스트 상자에 페이지로드 이벤트에서 설정 텍스트를 earases 다른 이름을 눌러 업데이트 버튼을 쓸 때, 나는 새로운 텍스트를 입력받을하려고

string FName = txtFName.Text; 

을하지만 문제는 내가 텍스트 상자에 새 텍스트를 쓸 때마다, 나는 세트의 형태로 데이터베이스 (dt.Rows과 같은 텍스트를 [받고 여전히 임을입니다 : 버튼 클릭 이벤트에서 텍스트 상자는 다음과 같이 0] [1] .ToString()). 텍스트 상자에서 현재 텍스트를 가져올 수없고 페이지로드 이벤트의 db에서 설정된 초기 값만 가져 오는 중입니다.

나는 다음과 같이 컴파일 후 내 텍스트 상자 마크 업이되고 있음을 발견하는 것 :

<input id="CPHcontent_txtFName" type="text" value="value set from db i.e. dt.Rows[0] [1].ToString()" name="ctl00$CPHcontent$txttxtFName"></input> 

텍스트 상자가 항상 곁에 DB를에서 설정 한 것과 같은 값을가집니다. 그게 왜 내가 텍스트 상자에 사용자가 입력 한 값에 관계없이 매번 같은 값을 얻는 지.

이제 내 페이지에서 텍스트 상자의 업데이트 된 값을 가져 오는 방법을 알려주십시오. 다시 onpageload을 읽기/설정하기 전에 미리

+0

페이지로드 이벤트를 표시 하시겠습니까? –

답변

2

asp.net webforms에서 데이터를 제어하고 데이터를 db에 저장하기위한 코드를 분리해야합니다. 데이터를 제어 할 수 있도록 설정하는 방법 중 하나 - 페이지로드 이벤트에서 검사 사용

if (!IsPostBack) 
{ 
    txtFName.Text = dt.Rows[0][1].ToString(); 
} 

그렇지 않으면 새로로드 한 텍스트를 모든 페이지로드시에 텍스트 상자로 덮어 씁니다.

0

에서

고맙습니다 비워 텍스트 상자를 설정하거나줍니다.

2

페이지로드 이벤트에 입력 한 텍스트가 포스트 백인지 확인하지 않으므로이 텍스트를 덮어 쓰는 것이 좋습니다. 자세한 내용은 ASP.NET Page Life Cycle Overview을 읽으십시오.

+0

나중에 글을 쓰고 있습니다 ... 나는 글을 쓰지 않는다면 글을 쓰는 것을 잊어 버렸습니다 ... 이제 나는 텍스트를 얻을 수 있습니다 .. thax alot. –

관련 문제