Re: DataGrid-Inhalt in ein Picture wandeln?
- From: "Peter Fleischer" <peter.fleischer_nospam_@xxxxxx>
- Date: Sun, 25 Nov 2007 07:18:50 +0100
"Stefan Falz [MVP]" <ms.news@xxxxxxxxxxxxxxxx> schrieb im Newsbeitrag news:75CB7A4C-F85B-4BF8-A3C1-63025219D3F6@xxxxxxxxxxxxxxxx
das ist ganz einfach. Nimm ein Bitmap-Objekt, hol die das Graphics-Objekt dazu und male die Daten dort hinein. Das Bitmap-Objekt schickst du zum Client als jpeg. Das kannst du alles in ein ashx packen und in einer Seite nutzen.
Du weißt aber schon, dass Du ganz schön gemein bist? :))
Hi Stefan
,
was ist daran gemein :-) ?
Hier mal eine einfache Demo:
<%@ WebHandler Language="VB" Class="Handler" %>
Imports System
Imports System.Web
Imports System.Data
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Drawing2d
Public Class Handler : Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Testdata1.GenerateData()
Dim dt As DataTable = Testdata1.GetDataTable
Using bmp As New Bitmap(1000, 1000)
Using g As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(bmp)
g.Clear(Color.White)
Dim fnt As New Font(System.Drawing.FontFamily.GenericSansSerif, 12, FontStyle.Regular, GraphicsUnit.Pixel)
For rn As Integer = 0 To dt.Rows.Count - 1
For fn As Integer = 0 To dt.Columns.Count - 1
Dim rect As New Rectangle(fn * 100, rn * 20, 100, 20)
g.DrawString(dt.Rows(rn)(fn).ToString, fnt, Brushes.Black, rect)
g.DrawRectangle(Pens.Black, rect)
Next
Next
context.Response.Clear()
context.Response.ContentType = "image/gif"
context.Response.AddHeader("Content-Disposition", "inline;filename=Tabelle.gif")
bmp.Save(context.Response.OutputStream, ImageFormat.Gif)
context.Response.End()
End Using
End Using
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
' Class for test data
Public Class Testdata1
Shared dt As System.Data.DataTable
Shared Sub GenerateData()
Dim i As Integer
Try
dt = New System.Data.DataTable("Tab1")
With dt
With .Columns
.Add("ID", GetType(Integer))
With .Item(0)
.AutoIncrement = True
.AutoIncrementSeed = -1
.AutoIncrementStep = -1
End With
.Add("col1", GetType(String))
End With
For i = 1 To 100
Dim r As DataRow = .NewRow
If Rnd() < 0.5 Then
r.Item(1) = "0"
Else
r.Item(1) = "Row " & i.ToString
End If
.Rows.Add(r)
Next
End With
Catch ex As Exception
End Try
End Sub
Shared Function GetDataTable() As DataTable
Return dt
End Function
End Class
--
Viele Gruesse
Peter
.
- Follow-Ups:
- Re: DataGrid-Inhalt in ein Picture wandeln?
- From: Stefan Falz [MVP]
- Re: DataGrid-Inhalt in ein Picture wandeln?
- References:
- DataGrid-Inhalt in ein Picture wandeln?
- From: Ralph Hüttenmoser
- Re: DataGrid-Inhalt in ein Picture wandeln?
- From: Stefan Falz [MVP]
- DataGrid-Inhalt in ein Picture wandeln?
- Prev by Date: Re: Fehler bei Ausführung nach Veröffentlichung
- Next by Date: Re: Fehler bei Ausführung nach Veröffentlichung
- Previous by thread: Re: DataGrid-Inhalt in ein Picture wandeln?
- Next by thread: Re: DataGrid-Inhalt in ein Picture wandeln?
- Index(es):
Relevant Pages
|
Loading