LoadControl
プログラムによるレンダリングの目的で、コードでカスタム コントロールを取得するために使用しようとしています。OnInit
ただし、カスタム コントロールのメソッドが呼び出されていないことに気付きました。ここで重要なステップが欠落していますか?
//Loading the control
Page h = HttpContext.Current.Handler as Page;
UserControl userControl = (UserControl)h.LoadControl(pathToControl);
h.Controls.Add((Control)userControl);
//Rendering the control
StringWriter stringWriter = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter((TextWriter) stringWriter);
userControl.RenderControl(writer);
var result = stringWriter.ToString();
これは、上記のコードが呼び出される場所です
[ScriptService]
public partial class Ajax : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static object AjaxMethod(string productCode) {
//here...
}
}