Dobrý den.
Řeším problém s RenderControl. Dynamicky generuji komponentu, kterou zasílám jako HTML string do klienta. Vše by bylo funkční, jen se mi nedaří render prvků input. V [OperationContract] mám následující metodu:
[OperationContract]
public string HledaniTextove(string hlText, int stranka)
{
var page = new Page();
var writer = new StringWriter();
page.ViewStateMode = ViewStateMode.Disabled;
page.PreInit += new EventHandler((s, e) =>
{
var control = page.LoadControl("~/cVyhledaneObjekty.ascx");
((IHledani)control).hlText = hlText;
((IHledani)control).hlTyp = "HledaniTextove";
((IHledani)control).str = stranka;
page.Controls.Add(control);
});
HttpContext.Current.Server.Execute(page, writer, false);
return writer.ToString();
}
V případě, že se kdekoli v komponentě cVyhledaneObjekty.ascx objeví objekt input, obdržím chybu např. "
Control 'Phled' of type 'HiddenField' must be placed inside a form tag with runat=server.". Řešením při použití v běžné stránce je přepsání metody VerifyRenderingInServerForm:
public override void VerifyRenderingInServerForm(Control control)
{ }
.
Problém je, že nevím, jak tuto metodu přepsat při dynamickém generování stránky var page = new Page();