fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 2006
-
17 mai 2006 à 10:29
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 2006
-
18 mai 2006 à 09:49
Bonjour a tous,
J'ai un probléme au niveau de l'affichage dans un detailsview
Je récupére des informations via wmi, je stock le tout dans un datatable et ensuite je l'affiche dans un detailsview. le pb, c'est que la mise en forme que j'utilise dans mon datatable ne s'execute pas
en effet j'utilise une balise
que je met dans une colonne de mon datatable et lors de l'execution celle-ci se transforme en <br>
voici mon code
Public Function getBios() As System.Data.IDataReader
Dim LaTable As New System.Data.DataTable
Dim MaLigne As System.Data.DataRow
Dim mes_infos As String = ""
Dim oq As System.Management.ObjectQuery
Dim query As ManagementObjectSearcher = Nothing
Dim ms As System.Management.ManagementScope
Dim queryCollection As ManagementObjectCollection = Nothing
Dim MonMO As ManagementObject = Nothing
Dim OccupationDisk As Double = 0
Dim connexionOption As ConnectionOptions = New ConnectionOptions
connexionOption.Username = "starfax"
connexionOption.Password = "starfax"
Dim list As BulletedList = New BulletedList
PrepareDatatable(LaTable)
ms = New System.Management.ManagementScope("\" + ip + "\root\cimv2", connexionOption)
oq = New System.Management.ObjectQuery("SELECT * FROM Win32_Bios")
query = New ManagementObjectSearcher(ms, oq)
queryCollection = query.Get()
For Each MonMO In queryCollection
If Not (IsNothing(MonMO("Description"))) Then
MaLigne = LaTable.NewRow()
MaLigne("Description") = MonMO("Description")
MaLigne("Status") = MonMO("Status")
MaLigne("N° de serie") = MonMO("SerialNumber")
MaLigne("Fabriquant") = MonMO("Manufacturer")
MaLigne("Version") = MonMO("Version")
Dim pos As Integer = 5
For Each element As Integer In MonMO("BiosCharacteristics")
MaLigne("informations") += bios_caract(element) & "
"
Next
LaTable.Rows.Add(MaLigne)
End If
Next
LaTable.Columns("Informations").Expression.ToCharArray()
Dim dr As System.Data.IDataReader
dr = LaTable.CreateDataReader
query.Dispose()
queryCollection.Dispose()
MonMO.Dispose()
Return dr
End Function
Private Sub PrepareDatatable(ByRef LaTableTemp As System.Data.DataTable)
Dim myColumn As System.Data.DataColumn = New System.Data.DataColumn
' Paramétrage des Colonnes
myColumn.DataType = System.Type.GetType("System.String")
myColumn.AllowDBNull = False
myColumn.Caption = "Description"
myColumn.ColumnName = "Description"
LaTableTemp.Columns.Add(myColumn)
myColumn = New System.Data.DataColumn
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "Status"
myColumn.ColumnName = "Status"
LaTableTemp.Columns.Add(myColumn)
myColumn = New System.Data.DataColumn
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "N° de serie"
myColumn.ColumnName = "N° de serie"
LaTableTemp.Columns.Add(myColumn)
myColumn = New System.Data.DataColumn
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "Fabriquant"
myColumn.ColumnName = "Fabriquant"
LaTableTemp.Columns.Add(myColumn)
myColumn = New System.Data.DataColumn
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "Version"
myColumn.ColumnName = "Version"
LaTableTemp.Columns.Add(myColumn)
myColumn = New System.Data.DataColumn
myColumn.DataType = System.Type.GetType("System.String")
myColumn.Caption = "Informations"
myColumn.ColumnName = "Informations"
LaTableTemp.Columns.Add(myColumn)
End Sub
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 17 mai 2006 à 16:44
Ok je pige un peu mieux le problème :p je croyais que c'etait le controle Table et pas un system.data.table :p
l'autre solution que je vois et de changer la disposition de ton datatable au lieu de mettre une colonne de type string, tu n'as qu'a mettre une colonne de type control (je sais pas si c'est possible ca :p) et ensuite tu pourras rajouter des controles dedans, sinon il faut essayer de mettre une colonne de type List<String> si c'est possible :s
l'autre solution consisterais lors de ton databinding du datareader vers ton controle, tu lui dis de ne pas htmlencodé, mais cette solution n'est pas trés propre :s
Le problème est vraiment sur ce que contient ton datareader, il comporte plusieurs lignes dont une qui contient d'autres lignes ...
ca me fait penser à une autre solution tu n'as qu'a mettre une colonne de type XML et ensuite lors de ton binding tu affiches comme il faut cette colonne :s
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 17 mai 2006 à 13:55
Si je comprend bien ton instruction permet d'ajouter une ligne entre chacune des ligne de mon datatable
Ce n'est pas exactement ce que je veux faire
mon but et d'ajouter un retour a la ligne pour chaque informations (pour chaque ligne qui est en gras dans mon code)
Si tu as encore une idée!!
Merci de ton aide précieuse!
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 17 mai 2006 à 16:35
J'ai testé, retésté et encore testé, rien a faire, le literalcontrol ne veut pas s'ajouter. j'ai un message d'erreur qui me dit que ma colonne ne peut pas contenir autre chose que le type string (ce qui est normal!!!!).Alors la je ne sais plus par ou mis prendre pour resoudre se pb
voila ce que j'essaie de faire
...
For Each element As Integer In MonMO("BiosCharacteristics")
Dim literal As New LiteralControl(bios_caract(element) & "
")
MaLigne("informations")= literal
Next
Merci de m'aider!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 17 mai 2006 à 17:04
Ok pour toutes ces soluces je test et je te fait part des retours!!!
En ce qui concerne le type des colonne j'ai essayé de mettre une colonne de type literal mais ca ne marche pas... :(
Peut tu m'en dire plus sur la solution XML?
Sinon, comment faire pour dire au databind de ne pas htmlencodé le texte qu'il contient????
C'est ptéte pas trés propre mais en attendant je pense que ce n'est pas une solution a écarté...
Merci bien tu m'apporte beaucoup de nouvelles piste et en plus tu semble maitriser le sujet c cool...
Allé je quitte le taff a demain pour tester tout ca!!
fcampagne
Messages postés195Date d'inscriptionvendredi 3 juin 2005StatutMembreDernière intervention13 juillet 20063 18 mai 2006 à 09:49
Tes pistes mon eclairées et j'ai enfin trouver une solution qui me convient
Je génére dynamiquement un detailsview comportant des boundcolumn avec la propriété htmlencode=false et ensuite j'associe ma table a ce detailsview
Resultat impec
ca fait plusieurs fois que tu me guide pour sortir de mes gros pb, merci bien pour ton aide