Har en profilmeny för varje användare där länken är i detta format: Profile.aspx?Id=584.
Profilmenyn är uppbyggd av jQuery.tabs() och varje gång man klickar på en flik så körs en jQuery.ajax-GET mot en Generic Handler (*.ashx) som hämtar en användarkontroll och konverterar denna till en String som jag sedan addera i flikens content-<div>. Detta gör jag med följande kod:
Om man har serverkontroller vilket jag givetvis har i mina användarkontroller så krävs det en <form>-tagg runt dessa när de laddas in dynamiskt som i mitt fall. Denna skapar jag programmatiskt i min UserControlUtilities**.ControlToString()**-metod som ser ut som följer:
public static string ControlAsString(string ucPath) {
Page page = new Page();
page.EnableViewState = false;
UserControl userControl = page.LoadControl(ucPath) as UserControl;
HtmlForm form = new HtmlForm();
form.ID = "ProfileForm";
form.Controls.Add(userControl);
page.Controls.Add(form);
StringWriter writer = new StringWriter();
HttpContext.Current.Server.Execute(page, writer, true);
return writer.ToString();
}
... vilket betyder att varje gång det sker en knapptryckning eller nåt likande så skickas man till <form>-taggens Action-attribut då den skapas i min Generic Handler (ProfileMenu.ashx).
Jag har försökt att programmatiskt sätta form.Action = "Profile.aspx?Id=584"; i ControlToString(), då postas man till rätt adress men knappen/dropdownlist eller nåt annat som har ett Event av nåt slag körs aldrig.
Någon som upplevt detta tidigare? Har ni nåt förslag på lösning?
Hörde att jag måste skapa alla serverkontroller som finns i mina användarkontroller dynamiskt i samband med att jag laddar in användarkontrollen, det blir ett grovt jobb i så fall då jag har väldigt många användarkontroller med serverkontroller.
Det måste finnas en alternativ lösning?
251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2