DevTrain Startseite Visual Studio 1 Magazin  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ASP.NET2.0 | Thema: AW: AW: AW: AW: AW: Seriendruck aus Anwendung starten | Von: Thomas Hauser ( 03.08.2007 11:55)

Das kommt auf die Performance an. Es gäbe schon Möglichkeiten, einen eigenen HttpHandler zu bauen, der irgendwelche Platzhalter mit den entsprechenden Werten ersetzt. Kann dann aber ziemlich langsam werden. Hier die Idee, natürlich sollten die Abfragen nicht direkt im HttpHandler gemacht werden. Und an der Performance kann man dann sicherlich auch noch schrauben.

<%@ WebHandler Language="C#" Class="Print" %>

using System;
using System.Web;

public class Print : IHttpHandler {

private string templateFile = "Default.html";

public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "text/html";
if (!string.IsNullOrEmpty(context.Request.QueryString["template"]))
this.templateFile = context.Request.QueryString["template"];
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = "Data Source=.;Initial Catalog=aspnetdb;Integrated Security=true";
con.Open();
System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand();
cmd.Connection = con;
cmd.CommandText = "select * from test";
System.Data.DataTable table = new System.Data.DataTable("data");
table.Load(cmd.ExecuteReader());
con.Close();
string template = "";
using (System.IO.StreamReader sr = new System.IO.StreamReader(context.Server.MapPath("~/App_Data/templates/" + this.templateFile)))
{
template = sr.ReadToEnd();
sr.Close();
}
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (System.Data.DataRow row in table.Rows)
{
string page = template;
foreach (System.Data.DataColumn col in table.Columns)
{
page = page.Replace(string.Format("%%{0}%%", col.ColumnName), row[col].ToString());
}
sb.AppendLine(page);
}
context.Response.Write(sb.ToString());
}

public bool IsReusable {
get {
return false;
}
}

}

Thomas Hauser (Trainer und Consultant, Blog: http://thomashauser.spaces.live.com, Forum: http://www.sharepointbook.de - Die Forum-Webseite zum Buch!)

Betreff Von Datum
AW: AW: AW: AW: AW: AW: Seriendruck aus Anwendung...
Da bekomme ich die Meldung: "Die Direktive webhandler ist unbekannt."
G. Guest 03.08.2007 12:37
AW: AW: AW: AW: AW: AW: AW: Seriendruck aus...
Hast Du das auch in einen Generischen Handler eingefügt?<br><br>"Neues Element hinzufügen" -> "Generischer Handler" -> "Print.ashx"<br><br>Da dann den Code einfügen.
Thomas Hauser 03.08.2007 13:02
AW: AW: AW: AW: AW: AW: AW: AW: Seriendruck aus...
Soweit so gut. Das würde funktionieren. Leider ist mein ganzes bisheriges Projekt drumrum in VB. Gibt es auch eine Möglichkeit, dass in dieser Sprache zu machen?
G. Guest 06.08.2007 12:38
AW: AW: AW: AW: AW: AW: AW: AW: AW:...
Logisch!!!<br><br><%@ WebHandler Language="VB" Class="PrintVb" %><br><br>Imports System<br>Imports System.Web<br><br>Public Class PrintVb : Implements IHttpHandler<br> <br> Private templateFile As String =...
Thomas Hauser 08.08.2007 18:13

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Advanced Developers Conference vom 14.-15. Februar 2011

© Copyright 2003 ppedv AG