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 |
|
|
G.
Guest
|
03.08.2007 12:37 |
|
|
Thomas
Hauser
|
03.08.2007 13:02 |
|
|
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!