Page Prerender에서 C#이있는 드롭 다운 박스에 대한 참조 받기
-
21-08-2019 - |
문제
로드 중에 C# 코드에서 ASPX 페이지의 드롭 다운 박스에 옵션을 추가하고 싶습니다. 컨트롤에 대한 참조를 얻는 방법을 모르겠습니다. 사용자가 드롭 다운 박스를 변경할 때 트리거되는 C# 코드가 있습니다. 그 점에서 나는 다음과 함께 드롭 다운에 대한 참조를 얻는다.
DropDownBox ddb = (DropDownBox)info.Toolbar.ToolbarItems.Find("ID");
그러나 내가 시도해 보면 작동하지 않습니다
protected void Page_PreRender(object sender, EventArgs e)
{
내 aspx.cs에서
내가 무엇을 놓치고 있습니까? 감사.
해결책
Dropdown의 선택한 항목이 Postbacks의 ViewState에서 자동으로 선택 되려면 Page_Preload Fires의 시간까지 드롭 다운에 모든 항목이 있어야합니다. 이렇게하려면 Page_Init에 코드를 넣으려면 컨트롤이 생성되지만 ViewState는 아직 주입되지 않았습니다.
여기서 살펴보세요 ASP.NET 페이지 수명주기 개요 페이지 수명주기에 대한 정보.
드롭 다운이 상위 컨테이너에있는 것을 알 수 있습니다. 컨트롤에 대한 참조를 얻지 못하면 find ()를 사용하기 전에 info.ensurechildcontrols ()를 호출해야 할 수도 있습니다.
다른 팁
Prerender는 페이지 수명주기의 끝을 향해 있습니다. 거기에서 변화를하고 싶습니까? 처음에 바인딩되거나 선택이 변경 될 때 드롭 다운에서 항목을 변경 해야하는 것처럼 들립니다.
http://codebetter.com/blogs//images/codebetter_com/raymond.lewallen/89/o_aspnet_page_lifecycle.jpg