Visa ett inlägg
Oläst 2009-06-21, 15:11 #2
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
Hej,

Jag har svårt att utläsa vad du är ute efter. Men om dina användarkontroller endast renderar innehåll och inte behöver ha några events så fungerar följande (i mina enkla tester). Jag har utgått ifrån att allting ligger i någon form av övergripande form-tagg (som normalt är i asp.net). Dvs, det verkar överflödigt att bygga upp en sida för varje kontroll på serversidan istället för att bara rendera innehållet.

Om jag missförstått så får du gärna förtydliga.

Kod:
<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Text;
using System.IO;
using System.Web;
using System.Web.UI;

public class Handler : IHttpHandler {
  private string path = "~/Controls/";
  public void ProcessRequest (HttpContext context) {
    string control = context.Request.QueryString["userControl"] as string;
    
    string fullpath = path + control + ".ascx";

    System.Web.UI.UserControl c = new System.Web.UI.UserControl();
    System.Web.UI.Control cont = c.LoadControl(fullpath);
    context.Response.ContentType = "text/plain";
    context.Response.Write(RenderControl(cont));
  }
  public string RenderControl(Control ctrl)
  {
    StringBuilder sb = new StringBuilder();
    StringWriter tw = new StringWriter(sb);
    HtmlTextWriter hw = new HtmlTextWriter(tw);

    ctrl.RenderControl(hw);
    return sb.ToString();
  }

  public bool IsReusable {
    get {
      return false;
    }
  }

}
digiArt är inte uppkopplad   Svara med citatSvara med citat