vertikální text v datagridview   zodpovězená otázka

ASP.NET WebForms

Zobrazuji na webové stránce v Gridview více sloupců, kde je v headerrow poměrně dlouhý název a pod ním ve sloupcích jsou již jen 3 znaky ve sloupci. Jak mám docílit toho, aby se mi text v headerRow zobrazoval vertikálně? Uvažoval jsem o tom, že tam budu vkládat obrázek s textem, ale headerRow se mění. Nenechá se nějakým způsbem využít třeba třída System.Drawing? Hledal jsem na netu, našel něco pomocí Css stylů tady http://www.sqlteam.com/forums/topic.asp?... ale Visual studio express hlásí chybu v Css, takže se mi to nepodařilo rozchodit.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak jsem obešel Visual studio, v notepadu dodělal ten Css styl podle linku výše a nahrál na server. V IE to funguje správně, ve Firefoxu ne. Pokud by snad někdo objevil nebo vymyslel něco i pro Firefox, Chrome, ... budu vděčný. Díky předem.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nemůžete jednoduše text odřádkovat pomocí <\br>?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Já potřebuji text otočit o 180 stupňů, ale už se mi to podařilo vyřešit pomocí kreslení obrázků, uložení na server a vložení do gridview. Na serveru je nutné mít povolený zápis do adresáře, kam se obrázky ukládají (v kódu dole je zápis do kořen. adresáře, ve skutečnosti je ukládám jinam). Protože se vždy jmenují 0.jpg, 1.jpg ... atd nemažu je, vždy se při novém načtení stránky překreslí. Nevím jestli je ten postup "košer", ale už to chodí :-)

Imports System.Data
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Text

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim dt As New DataTable
        dt.Columns.Add("něco hodně dlouhého")
        dt.Columns.Add("další dlouhý text")
        dt.Columns.Add("pro změnu dlouhý text")
        dt.Columns.Add(".. a pro změnu dlouhý název sloupce")
        For i As Integer = 0 To 5
            dt.Rows.Add()
            dt.Rows(i).Item(0) = "1"
            dt.Rows(i).Item(1) = "bla"
            dt.Rows(i).Item(2) = "1A"
            dt.Rows(i).Item(3) = "3.2"
        Next
        GridView1.DataSource = dt
        GridView1.DataBind()
    End Sub

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound

        Dim tc As TableCell
        Dim a As String
        Dim MojeBarva As Color = System.Drawing.ColorTranslator.FromHtml("#B5C7DE")
        Dim TextBarva As Color = System.Drawing.ColorTranslator.FromHtml("#37558F")
        Dim fontfml As New FontFamily(genericFamily:=GenericFontFamilies.SansSerif)
        Dim font As New Font(fontfml, 10, FontStyle.Bold)
        Dim brush As New SolidBrush(TextBarva)
        Dim drawFormat = New StringFormat()

        If e.Row.RowType = DataControlRowType.Header Then
            e.Row.Height = 100
            e.Row.Width = 100

            For i = 0 To e.Row.Cells.Count - 1
                tc = e.Row.Cells(i)

                a = HttpUtility.HtmlDecode(tc.Text)
                tc.Text = ""

                
                Dim b As Bitmap = New Bitmap(24, 240)
                Dim g As Graphics

                g = Graphics.FromImage(b)
                g.Clear(MojeBarva)
                drawFormat.FormatFlags = StringFormatFlags.DirectionVertical
                drawFormat.Alignment = StringAlignment.Near
                g.DrawString(a, font, brush, 1, 1, drawFormat)
                b.RotateFlip(RotateFlipType.Rotate180FlipNone)

                Dim jm As String = i & ".jpg"
                'b.Save(Response.OutputStream, ImageFormat.Jpeg)
                b.Save(Server.MapPath(jm), ImageFormat.Jpeg)

                Dim img As New System.Web.UI.WebControls.Image()
                img.ImageUrl = jm

                tc.Controls.Add(img)
                tc.VerticalAlign = VerticalAlign.Bottom
            Next
        End If
    End Sub




End Class

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback