많은 감사합니다. 글쎄, 나는로드 컨트롤 방법에서 이드가 문제라는 것을 알았습니다. 나는이 마법사를하고 있었다. .. 대부분의 물건은 꽤 지금 일한다. 내가 splitview을 사용하여 단계로드 컨트롤을 사용하여 단일 뷰를 사용하여 컨트롤을 하위 단계입니다으로
는
public void LoadSplitViewControl(string path)
{
SwitchNavigationView(NavigationView.SplitView);
LastNavigationView = NavigationView.SplitView;
LoadControl(SplitControlLoader, path, "LoadedControlSplit");
}
public void LoadSingleViewControl(string path)
{
SwitchNavigationView(NavigationView.SingleView);
LastNavigationView = NavigationView.SingleView;
LoadControl(SingleControlLoader, path, "LoadedControlSingle");
}
public void LoadSingleViewControlAsClear(string path)
{
SwitchNavigationView(NavigationView.SingleView);
LastNavigationView = NavigationView.SingleView;
LoadControlAsClear(SingleControlLoader, path, "LoadedControlSingle");
}
private void LoadControl(PlaceHolder holder, string path, string ID)
{
UserControl ctrl = (UserControl)Page.LoadControl(path);
ctrl.ID = ID;
LastControlPath = path;
holder.Controls.Clear();
holder.Controls.Add(ctrl);
}
// 때로는 viewstate가 그렇게 오류 유효하지 않습니다 사람이 작동하지 않습니다 방식을 볼 수 관심이 있다면 은 .. 일부 업데이트가 던져 질 것이지만, 아래 메소드를로드 할 LoadSingleViewControlAsClear를 사용하여이 문제를 해결할 수 있습니다.
는
private void LoadControlAsClear(PlaceHolder holder, string path, string ID)
{
UserControl ctrl = (UserControl)Page.LoadControl(path);
ctrl.ID = ID;
LastControlPath = path;
ctrl.EnableViewState = false;
holder.Controls.Add(ctrl);
}
/내가 이러한 마법사를 위해 사용하고 다른 멋진 아이디어는 전 단계에 걸쳐 수집 된 값을 저장하는 viewstate가 아니라 세션 객체를 사용하지하고 있다는 점이다. 내 세션 객체 키는 인증 된 사용자 이름과 페이지 가이드에 의해 생성되므로 많은 페이지를로드 할 수 있으며 각각 다른 세션 객체를 처리 할 수 있습니다./
public Guid PageGuid
{
get
{
if (PageGuidField.Value == "")
{
var _pageGuid = Guid.NewGuid();
PageGuidField.Value = _pageGuid.ToString();
return _pageGuid;
}
return new Guid(PageGuidField.Value);
}
}
코드를 보지 않고도이 컨트롤을 동적으로로드하고 있습니까? – epitka