먼저 지적하자면,이 질문에 대한 대답은 쉽지 않습니다. 적어도 답을 찾는 것은 거의 불가능합니다.동적 추가 컨트롤 및 AJAX
UpdatePanel에서 필자는 패널 컨트롤에 일부 컨트롤을 동적으로 추가합니다.
이 모든 것은 컨트롤 asychrone에서 시작한 버튼 이벤트에서 발생합니다.
아래의 코드에서 위의 코드를 추가하면 버튼이 있습니다. 버튼은 또한 updatepanel에 배치됩니다. 이 버튼은 다음과 같이 호출됩니다. btn_editShowings
이제 btn_editShowings_Click 이벤트 처리기를 방문하면 동적 추가 컨트롤이 더 이상 존재하지 않습니다. 나는 또한 OnInit에서 그것들을 잡아려고했지만 그것들도 존재하지 않는다.
어떻게 F ... 동적 추가 컨트롤에서 데이터를 가져 오는 것이 가능합니까 ??? 어쨌든 거기에 있습니까? 그리고이 문제를 해결하는 데 얼마나 힘든 일이든 상관 없습니다.
UPDATE : 지금 내가 읽은 내용에서 LoadViewState 이전과 초기화 화재를 작동해야 다음을 수행하기 위해 노력했다
.
가 나는 버튼 이벤트
protected void Button2_Click(object sender, EventArgs e)
{
for (int i = j; i < showno + 4; i++)
{
UserControl uc = (UserControl)Page.LoadControl("Controls/BookShowing.ascx");
uc.ID = "showing_" + i;
uc.Attributes.Add("runat", "Server");
uc.EnableViewState = true;
uc.Visible = true;
pnl_showings.Controls.Add(uc);
}
UpdatePanel1.Update();
}
동적 일부 컨트롤을 추가하고 내 init 함수에서 같은 일을했다 : 보호 재정의 무효하는 OnInit (EventArgs입니다 전자) { base.OnInit (예) ; 나는이 때
if (Session["ShowingsCount"] != null)
{
int noOfUCs = (int)Session["ShowingsCount"];
for (int i = 1; i < noOfUCs; i++)
{
UserControl uc = (UserControl)Page.LoadControl("Controls/BookShowing.ascx");
uc.ID = "showing_" + i;
uc.Attributes.Add("runat", "Server");
uc.EnableViewState = true;
uc.Visible = true;
pnl_showings.Controls.Add(uc);
}
UpdatePanel1.Update();
}
}
는하지만 :
FindControl("showing_1").Visible = false;
나는 null 참조 예외를 얻을.
최고 감사합니다. 진짜 Napster가 다시 고생했습니다.
나는 결코 LoadViewState 메서드를 입력하지 않습니까? 그 사건을 일으키기 위해 어떤 일도해야합니까? –