[ aleksandarpopov @ 21.09.2005. 13:35 ] @
Kada u designeru napravim novi datagrid i podesim njegov tablestyle kako ja hocu, znaci, sirina kolona, naslovi iznad kolona... i kada zatim povezem datagrid.datasource sa nekim netipsikim data setom on mi i dalje prikazuje default datagrid, ne onako kako sam ga ja napravio?
Kako ga naterati da prikazuje novi, zeljeni grid?
Koristim vs2003 & C#
Hvala
[ Gogy @ 21.09.2005. 14:40 ] @
Ne znam za to iz designera,ali to sto trazis mozes napraviti uz malo koda.
Evo ti primjer iz jednog mog test projekta:

Code:

    Public Sub CreateGridStyle()
        Dim x As New DataGridTableStyle
        x.AllowSorting = True
        x.MappingName = "Instalacije"


        Dim y As New DataGridTextBoxColumn

        y.MappingName = "ID"
        y.HeaderText = "ID"
        x.GridColumnStyles.Add(y)



        y = New DataGridTextBoxColumn

        y.MappingName = "Datum"
        y.HeaderText = y.MappingName
        x.GridColumnStyles.Add(y)


        y = New DataGridTextBoxColumn
        y.MappingName = "Naziv firme"
        y.HeaderText = "Naziv firme"
        y.Alignment = HorizontalAlignment.Center
        y.Width = 200

        x.GridColumnStyles.Add(y)

        y = New DataGridTextBoxColumn
        y.MappingName = "Grad"
        y.HeaderText = "Grad"
        y.Alignment = HorizontalAlignment.Center
        x.GridColumnStyles.Add(y)

        y = New DataGridTextBoxColumn
        y.MappingName = "OS"
        y.HeaderText = "OS"
        y.Alignment = HorizontalAlignment.Center
        x.GridColumnStyles.Add(y)


        y = New DataGridTextBoxColumn
        y.MappingName = "Telefon1"
        y.HeaderText = "Telefon"
        y.Alignment = HorizontalAlignment.Center
        x.GridColumnStyles.Add(y)

        y = New DataGridTextBoxColumn
        y.MappingName = "Kontakt osoba"
        y.HeaderText = "Kontakt osoba"
        y.Alignment = HorizontalAlignment.Center
        x.GridColumnStyles.Add(y)



        x.BackColor = Color.Snow

        x.HeaderBackColor = Color.Purple
        x.HeaderForeColor = Color.White
        x.HeaderFont = New Font("Arial", 10, FontStyle.Bold, GraphicsUnit.Pixel)

        x.ForeColor = Color.OrangeRed

        GridInst.TableStyles.Add(x)


    End Sub


Dakle,kod definise polja koja ce se pojaviti u gridu,boje,headere i ostalo.Na kraju to dodaje u kolekciju stilova.
Nadam se da ti moze biti od neke pomoci!
[ aleksandarpopov @ 21.09.2005. 19:19 ] @
Hvala, nisam mislio rucno to da radim ali ok, posluzice i ovako!
[ dusans @ 21.09.2005. 19:49 ] @
Ne moraš uopšte da radiš kroz kod, samo stavi da ti vrednost MappingName svojstva TableStyle-a bude ista kao i ime tabele u DataSet-u koju prikazuješ u gridu
[ aleksandarpopov @ 22.09.2005. 11:38 ] @
Hvala, to mi je trebalo
Pozdrav
[ majstor01 @ 22.09.2005. 23:10 ] @
Moze i ovo tvoje prvo resenje, samo moras da das ime tablestyle-u.
I odmah ce da proradi.

:)
[ aleksandarpopov @ 23.09.2005. 11:58 ] @
Svako resenje koje radi je dobro, ali ne kodira mi se vise nego sto je potrebno, pa cu se drzati Designera...:)
Hvala jos jednom i pozdrav!
[ serbianmorpheus @ 06.10.2005. 00:21 ] @
Public Class columnProperties
Private _ColumnName As String
Private _HeaderText As String
Private _Width As String
Private _DataAligment As String


Sub New(ByVal CName As String, ByVal CText As String, ByVal CWidth As String, ByVal CDAligment As String)
_ColumnName = CName
_HeaderText = CText
_Width = CWidth
_DataAligment = CDAligment
End Sub

Public ReadOnly Property ColumnName() As String
Get
Return _ColumnName
End Get
End Property

Public ReadOnly Property HeaderText() As String
Get
Return _HeaderText
End Get
End Property

Public ReadOnly Property Width() As String
Get
Return _Width
End Get
End Property

Public ReadOnly Property DataAligment() As String
Get
Return _DataAligment
End Get
End Property
End Class


rAOCP je ArrayList tipa columnProperties .....


Private Function returnTableStyles(ByVal rAOCP As ArrayList, ByVal DS As DataSet) As DataGridTableStyle
Dim ts As New DataGridTableStyle
Dim i As Integer

ts.MappingName = DS.Tables(0).TableName

For i = 0 To rAOCP.Count - 1

Dim CS As New HeaderAndDataAlignColumn
CS.Alignment = HorizontalAlignment.Center
CS.MappingName = DirectCast(rAOCP(i), columnProperties).ColumnName()
CS.HeaderText = DirectCast(rAOCP(i), columnProperties).HeaderText()

If DirectCast(rAOCP(i), columnProperties).Width() = "0" Then
CS.DataAlignment = HorizontalAlignment.Left
End If
If DirectCast(rAOCP(i), columnProperties).Width() = "1" Then
CS.DataAlignment = HorizontalAlignment.Center
End If
If DirectCast(rAOCP(i), columnProperties).Width() = "2" Then
CS.DataAlignment = HorizontalAlignment.Right
End If

CS.Width = CInt(DirectCast(rAOCP(i), columnProperties).Width())

ts.GridColumnStyles.Add(CS)
Next

ts.RowHeadersVisible = False
ts.HeaderForeColor = Color.Black
ts.HeaderFont = New Font("Verdana", 11, FontStyle.Bold, GraphicsUnit.Pixel)

Return ts
End Function


Probaj na ovaj nacin, ovo je prilagodjen primer aplikaciji na kojoj radim ali funkcionise i bez ArrayLista ....

Private Function returnTableStyles(ByVal DS As DataSet) As DataGridTableStyle
Dim ts As New DataGridTableStyle
Dim i As Integer

ts.MappingName = DS.Tables(0).TableName

For i = 0 To DS.Tables(0).Columns.Count - 1

Dim CS As New HeaderAndDataAlignColumn
CS.Alignment = HorizontalAlignment.Center
CS.MappingName = DS.Tables(0).Columns(i).ColumnName
CS.HeaderText = DS.Tables(0).Columns(i).ColumnName
CS.DataAlignment = HorizontalAlignment.Center
CS.Width = 100

ts.GridColumnStyles.Add(CS)
Next

ts.RowHeadersVisible = False
ts.HeaderForeColor = Color.Black
ts.HeaderFont = New Font("Verdana", 11, FontStyle.Bold, GraphicsUnit.Pixel)

Return ts
End Function

.
.
.

DataGrid1.TableStyles.Add(returnTableStyles(DataSet11))

Mislim da ti ovo moze pomoci ......
[ aleksandarpopov @ 13.10.2005. 11:40 ] @
E nisam video dosada da je jos neko odgovorio....hvala svakako ali mislim da je to previse gimnastike (koda)!
Zanimalo me je kako kad u dizajneru da napravim grid da njega i prikazem a ne default....hvala svakako!
Pozdrav