2012-01-24 3 views
0

저는 C#과 .NET을 오랫동안 사용해 왔지만 현재 ASP.NET을 사용하여 처음으로 웹 응용 프로그램을 작성하고 있습니다. Page_Load 함수가 내 버튼 이벤트 핸들러보다 먼저 호출된다는 사실을 깨닫는 데 꽤 시간이 걸렸지 만,이 시점에서이 문제를 해결하기 위해 응용 프로그램을 제대로 작동하게했습니다. 그러나, 내가 겪고있는 문제는 다음과 같습니다.ASP.NET - 버튼 클릭 후 페이지에서 GridView 데이터 새로 고침

내 응용 프로그램에서 SortedList에 바인딩 된 GridView 컨트롤이 있습니다. 버튼 클릭 이벤트 핸들러는 폼의 데이터를 데이터베이스에 저장하고 (실제로 SOAP 서비스를 통해 데이터를 저장합니다), GridView가 바인딩 된 목록을 업데이트하여 최신 데이터 (다시 말하면 업데이트 SOAP 서비스의 목록). 그러나 내 단추 클릭 이벤트 처리기가 실행되기 전에 페이지가 새로 고쳐지기 때문에 실제로 페이지에서 데이터가 업데이트 된 것으로 나타나지 않습니다. 이와 같은 상황을 처리하는 적절한 방법은 무엇입니까? 페이지가 이미 새로 고쳐 졌더라도 버튼 핸들러가 데이터를 저장 한 후 페이지의 데이터를 새로 고치거나 최신 상태로 유지하려면 어떻게합니까? 나는 이것을 꽤 오래 동안 고심하고있다. 그래서 이것을 설명하는 데 도움이 될 어떤 코드 예제 나 링크도 많은 도움이 될 것이다.

미리 감사드립니다.

+0

[페이지 수명주기] (http://msdn.microsoft.com/en-us/library/ie/ms178472.aspx ')를 참조하십시오. – harag

답변

0

Page_Load

if (!IsPostBack) 
{ 
    //Bind your Grid 
} 
+0

사실 내가 이미 이것을 가지고 있으므로 GridView는 웹 서비스에서 항목 목록을 가져 와서 페이지를로드 할 때 처음에는 괜찮아 보입니다. 그것은 단지 버튼 클릭으로리스트에 추가하려고 시도한 직후입니다. (노트 - 버튼 클릭 핸들러가 끝난 후 수동으로 페이지를 새로 고침하면 GridView가 예상대로 작동합니다. 이 수동 새로 고침을해야합니다!) – JToland

+1

버튼 클릭 이벤트에서 새 업데이트 된 레코드에 대한 '그리드'를 다시 바인딩하십시오. –

+0

아! 매번 데이터를 리 바인드해야한다는 것을 알지 못했습니다! 나는 일단 바인딩 된 것으로 생각하고, 목록이 변경되면 컨트롤도 변경 될 것이라고 생각했습니다. 그래서 DataSource를 다시 설정하고 클릭 단추 처리기에서 다시 바인딩하여 문제를 해결했습니다. 감사! – JToland

0

그냥 아래의 경우 상태 코드를 작성 내부하려고합니다.

if(!IsPostBack) 
     { 
     write your code here in formload. 
     } 
0

은 내가 페이지 수명주기에 관한 자원에 Harag의 링크를 수정합니다. 여기에서 찾을 수 있습니다 : http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx. OP의 질문에 대한 대답이 아니지만, 일단 웹 양식을 프로그래밍하기 시작하면 더 중요한 개념이므로 중요하게 생각하기 때문에 다시 말합니다.