2009-05-06 2 views
1

안녕하세요,이 복잡한 문제에 대한 간단한 해결책이 있습니다. 제발 오해하고있는 모든 오해를 바로 잡으십시오. 얼마 전에 동적 열 기능이있는 GrivView를 작성했습니다. 열은 OnInit 페이지 이벤트에 추가되어 viewstate가 적용되기 전에 추가됩니다. viewstate가 적용될 때 사용자가 작성하고 데이터베이스에 커밋되지 않은 변경 사항이 유지되도록 페이지의이 섹션에있는 모든 게시에 다시 적용됩니다. 또한 viewstate 컨트롤 트리가 동기화되지 않고 모든 것을 날려 버리는 것을 원하지 않는 경우에도 필요합니다.oninit 이벤트에서 동적 열 생성을위한 DDL 값 결정

현재 문제는 드롭 다운 목록에 따라 열의 위치가 달라지는 것과 기본적으로 동일한 작업을해야한다는 것입니다. ddl이 변경되면 GridView가 다시 생성되어 사용자가 경고). OnInit 이벤트의 드롭 다운 목록에서 선택된 ID는 어떻게 얻을 수 있습니까? 내 이해는 사용자가 클라이언트 측에서 ddl의 값을 변경하면 JavaScript "__doPostBack"호출이 시작된다는 것입니다. 페이지 요청은 서버로 보내지지만 새 값이 이벤트 핸들러에있을 때까지는 열을 추가해야하는 시점을 지나치고 있습니다.

사람들이 어떤 제어로 인해 포스트가 생겼는지 결정하려고 할 때 유망하다고 생각하는 것을 보았지만 그 코드는 페이지를 사용합니다. 요청 (REST) ​​.Params.Get ("__ EVENTTARGET"); 및 page.Request.Form은 비어 있습니다.

세션 상태를보고 클라이언트 쪽 조작 또는 다른 방법을 사용하여 ID를 '보내'시도해보십시오 (아마도 부적절한 방법으로 viewstate를 보지 못할 것입니다).

아이디어를 제공해 주셔서 감사합니다.

답변

2

양식이 아직 재구성되지 않은 것으로 보일지라도 컨트롤의 제출 된 값은 요청 [] 컬렉션에서 사용할 수 있습니다. 다음 사용

당신은 간단하게 초기화하는 동안 선택된 값을 얻을 수 있어야합니다() : 어떤 이유

string value = Request["myDropDownID"]; 
+0

, 첫 포스트 백에만 이렇게. 더 좋은 대답은 내 +1 –