>  기사  >  웹 프론트엔드  >  js는 html_javascript 기술을 철자할 때 편의를 제공하기 위해 UserControl 컨텐츠를 얻습니다.

js는 html_javascript 기술을 철자할 때 편의를 제공하기 위해 UserControl 컨텐츠를 얻습니다.

WBOY
WBOY원래의
2016-05-16 16:32:121484검색

오늘 Lao Zhao의 기사를 읽었지만 디버깅할 수 없었습니다.

코드 복사 코드는 다음과 같습니다.

[AjaxPro.AjaxMethod]
공개 문자열 gethtml()
{

UcViewHelper viewManager = new UcViewHelper();
UserControl 컨트롤 = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx");
문자열 s=viewManager.RenderView(control);

반품하세요;

}

공개 클래스 UcViewHelper 여기서 T : UserControl
{
개인 마이페이지 m_pageHolder;
공개 T LoadViewControl(문자열 경로)
{
m_pageHolder = 새로운 MyPage();
return (T)m_pageHolder.LoadControl(path);
}
공개 문자열 RenderView(T 컨트롤)
{
StringWriter 출력 = new StringWriter();

this.m_pageHolder.Controls.Add(control);
HttpContext.Current.Server.Execute(this.m_pageHolder, 출력, false);

return 출력.ToString();
}
}

class 마이페이지 : 페이지
{
공개 재정의 무효 검증RenderingInServerForm(제어 제어)
{
//if (컨트롤이 GridView || 컨트롤이 UserControl임)
//{
// 반환;
//}
//base.VerifyRenderingInServerForm(control);
}
}

테스트를 통과했습니다.

만약:

코드 복사 코드는 다음과 같습니다.

[AjaxPro.AjaxMethod]
공개 문자열 gethtml()
{
문자열 s = getString();
반품하세요;

}
공개 문자열 getString()
{
UserControl 컨트롤 = LoadControl("~/uc/giftoutmodel.ascx") as UserControl;
StringWriter tw = 새로운 StringWriter();
HtmlTextWriter 작가 = 새로운 HtmlTextWriter(tw);
control.RenderControl(작가);
returnwriter.InnerWriter.ToString();
}

공개 재정의 무효 검증RenderingInServerForm(제어 제어)
{
// if (컨트롤은 GridView || 컨트롤은 UserControl)
// {
// 반환;
//}
//base.VerifyRenderingInServerForm(control);
}

이유는 Lao Zhao의 코드가 Page를 상속한 후 VerifyRenderingInServerForm을 사용하여 검증한 것으로 밝혀졌습니다. 둘째, 제 코드는 Page를 상속받지 않고 VerifyRenderingInServerForm을 직접 사용했기 때문에

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.