에서 나는 내가보기 (멀티 뷰) 각 행은 '편집'버튼을 포함 내에 중계기를합니다 (CommandArgument에 저장을 유형의 ID입니다) C# .NET을액세스 CommandEventArgs PageLoad
을 사용하고 있습니다.
<asp:Button ID="buttonClick" OnCommand="ButtonClick" CommandArgument='<%#Eval("ID")%>' runat="server" Text="Edit"/>
사용자가 '편집'버튼을 클릭하면 다른보기 (편집보기)로 이동합니다.
Eval ("ID") 유형이 선택되면 다른 UserControl이 표시되어야합니다.
같은 모양 (편집보기)에서 포스트 백이 발생하면 동적 컨트롤에 대한 상태가 손실된다는 사실을 알고있었습니다. 따라서 나는 Page_Load를 통해 DIV (appViewArea)에 액세스하거나 채울 필요가 있다고 생각한다.
내 Page_Load 내에서 사용자가 Edit View에 액세스 한 경우에만 올바른 UserControl으로 DIV를 채우기를 원합니다. 다음은 현재 내 Page_Load 내에있는 것입니다.
if(_multiView1.ActiveViewIndex == 1) // This is the Edit View
{
int typeId = Convert.ToInt32(viewAppointmentID.Value); // viewAppointmentID is a hidden field which is created within the ButtonClick method.
switch (typeId)
{
case 1:
{
var control = Page.LoadControl("~/editBirthAppointment.ascx");
appViewArea.Controls.Add(control);
}
break;
case 2:
{
var control = Page.LoadControl("~/editDeathAppointment.ascx");
appViewArea.Controls.Add(control);
}
break;
}
}
protected void ButtonClick(object sender, CommandEventArgs e)
{
var viewAppointmentID = Convert.ToInt32(e.CommandArgument);
_multiView1.ActiveViewIndex = 1;
}
내 문제는 결코로 간다 있다는 것입니다 경우 statament (_mutliview)하고 또한 viewAppointmentID를 저장하지 않습니다. 나는 웹을 둘러 보았지만 정말로 나를 도와주는 것을 찾을 수 없었다. 잘못된 방식으로 접근하고 있습니까?
미리 도움을 청하십시오.
감사
클레어
동적 컨트롤이 ViewState 내에 저장되지 않으므로 Page_Load 내에서 사용해야합니다. – ClareBear
oncommand를 사용하여 세션 var에 추가 한 다음 page_load? 또는 더 많은 코드를 제공 할 수 있습니까? –