Ich habe einen Blick, und von dem, was ich sagen kann, ist dies ein Fall von Sie können Ihren Kuchen nicht haben und es auch essen, aber ich dachte, ich würde fragen, falls jemand weiß von einem Workaround, den ich verwenden könnte.Mehrere Datentypen in Spalte
Ich baue ein DataGridView-Steuerelement programmatisch, mit im Wesentlichen zwei Spalten, Feldname und Wert, stammen die Quelldaten aus unserem CRM-System, die in einer komplexen Weise gespeichert ist, so wurde dies als das beste Format zu abrufen.
Das Problem, das ich habe, ist, dass es nicht HTML-Tags, wenn sie aus der Datenbank gezeichnet werden, die gleichen mit E-Mail-Adressen, ich sie manuell in hrefs, so dass sie einfach auf die Seite geklickt werden können, zu öffnen Neue e-mail.
Mit dem Beispiel unten, was in der Datenbank gespeichert ist, ist die http: // -Adresse, ich habe es in ein HTML-Tag gemacht, sonst zeigt es nur die URL als Nur-Text.
result.value = "<a href= """ & result.value & ">" & result.value & "</a>"
Display of data - added href tags
Von Artikel habe ich gelesen habe, funktionieren würde, die Htmlencode auf den Wert hinzufügen, aber es funktioniert nicht.
result.value = HttpUtility.HtmlEncode(result.value)
Display of data - added htmlencode
Hat jemand irgendwelche Ideen, wie ich diese Spalte Anzeige machen können beide Strings und Hyperlinks?
Die vollständige Methode Ich verwende hier:
Private Sub getData()
'DropDownList1.SelectedIndex = 0
If DropDownList1.SelectedValue Is "" Then
' assume firstrun
Else
'assume not firstrun
firstrun = False
thisClientID = dbconn.getClientID(DropDownList1.SelectedValue)
Dim results As List(Of DataDump) = dbconn.GetAllData(thisClientID)
Label1.Text = "(CRM ID: " & thisClientID & ")"
alldc = New DataColumn()
'dc.DataType = System.Type.GetType("system.string")
'alldc.ColumnName = "Tab"
'alldc.ReadOnly = "True"
'AllDataTable.Columns.Add(alldc)
alldc = New DataColumn()
' dc.DataType = System.Type.GetType("system.string")
alldc.ColumnName = "Field"
alldc.ReadOnly = "True"
AllDataTable.Columns.Add(alldc)
alldc = New DataColumn()
'alldc.DataType = System.Type.GetType("system.hyperlink")
alldc.ColumnName = "Value"
alldc.ReadOnly = "True"
AllDataTable.Columns.Add(alldc)
CompanyDetailsDataTable = AllDataTable.Clone
ConnectionDetailsDataTable = AllDataTable.Clone
EnvironmentalConfigurationDataTable = AllDataTable.Clone
ModulesInstalledDataTable = AllDataTable.Clone
OnlineConfigurationDataTable = AllDataTable.Clone
PensionDetailsDataTable = AllDataTable.Clone
PeopleDataTable = AllDataTable.Clone
SupportDetailsDataTable = AllDataTable.Clone
SystemConfigurationDataTable = AllDataTable.Clone
UATSystemDataTable = AllDataTable.Clone
' Instantiate the DataSet variable.
Dim AllDetailsDataSet As New DataSet()
Dim CompanyDetailsDataset As New DataSet()
Dim ConnectionDetailsDataset As New DataSet()
Dim EnvironmentalConfigurationDataset As New DataSet()
Dim ModulesInstalledDataset As New DataSet()
Dim OnlineConfigurationDataset As New DataSet()
Dim PensionDetailsDataset As New DataSet()
Dim PeopleDataset As New DataSet()
Dim SupportDetailsDataset As New DataSet()
Dim SystemConfigurationDataset As New DataSet()
Dim UATSystemDataset As New DataSet()
' Add the new DataTable to the DataSet.
AllDetailsDataSet.Tables.Add(AllDataTable)
CompanyDetailsDataset.Tables.Add(CompanyDetailsDataTable)
ConnectionDetailsDataset.Tables.Add(ConnectionDetailsDataTable)
EnvironmentalConfigurationDataset.Tables.Add(EnvironmentalConfigurationDataTable)
ModulesInstalledDataset.Tables.Add(ModulesInstalledDataTable)
OnlineConfigurationDataset.Tables.Add(OnlineConfigurationDataTable)
PensionDetailsDataset.Tables.Add(PensionDetailsDataTable)
PeopleDataset.Tables.Add(PeopleDataTable)
SupportDetailsDataset.Tables.Add(SupportDetailsDataTable)
SystemConfigurationDataset.Tables.Add(SystemConfigurationDataTable)
UATSystemDataset.Tables.Add(UATSystemDataTable)
For Each result As DataDump In results
alldr = AllDataTable.NewRow()
Select Case True
Case result.value.StartsWith("http")
'Hyperlinks
result.value = "<a href= """ & result.value & ">" & result.value & "</a>"
'result.value = HttpUtility.HtmlEncode(result.value)
' ****** need to make hyperlinks work
Case result.value.Contains("\")
'Connection Strings
Do While result.value.Contains("\\")
result.value = Replace(result.value, "\\", "\")
Loop
Case result.value.Contains("@") And result.value.Contains(".")
'Email Addresses - set as hyper link
result.value = "<a href= ""mailto:" & result.value & ">" & result.value & "</a>"
Case Else
End Select
'alldr("Tab") = result.tabname
alldr("Field") = result.fieldname
alldr("Value") = result.value
Select Case result.tabname
Case "Company Details"
CompanyDetailsDataTable.Rows.Add(result.fieldname, result.value)
Case "Connection Details"
ConnectionDetailsDataTable.Rows.Add(result.fieldname, result.value)
Case "Environmental Configuration"
EnvironmentalConfigurationDataTable.Rows.Add(result.fieldname, result.value)
Case "Modules Installed (Live)"
ModulesInstalledDataTable.Rows.Add(result.fieldname, result.value)
Case "Online Configuration"
OnlineConfigurationDataTable.Rows.Add(result.fieldname, result.value)
Case "Pension Details"
PensionDetailsDataTable.Rows.Add(result.fieldname, result.value)
Case "People"
PeopleDataTable.Rows.Add(result.fieldname, result.value)
Case "Support Details"
SupportDetailsDataTable.Rows.Add(result.fieldname, result.value)
Case "System Configuration"
SystemConfigurationDataTable.Rows.Add(result.fieldname, result.value)
Case "UAT System"
UATSystemDataTable.Rows.Add(result.fieldname, result.value)
Case Else
End Select
'AllDataTable.Rows.Add(result.tabname, result.fieldname, result.value)
Next
CompDetailsGV.DataSource = CompanyDetailsDataset
ConnDetailsGV.DataSource = ConnectionDetailsDataset
EnvironmentalDetailsGV.DataSource = EnvironmentalConfigurationDataset
ModulesDetailsGV.DataSource = ModulesInstalledDataset
OnlineDetailsGV.DataSource = OnlineConfigurationDataset
PensionDetailsGV.DataSource = PensionDetailsDataset
peopleDetailsGV.DataSource = PeopleDataset
SupportDetailsGV.DataSource = SupportDetailsDataset
SystemDetailsGV.DataSource = SystemConfigurationDataset
UATDetailsGV.DataSource = UATSystemDataset
CompDetailsGV.DataBind()
ConnDetailsGV.DataBind()
EnvironmentalDetailsGV.DataBind()
ModulesDetailsGV.DataBind()
OnlineDetailsGV.DataBind()
PensionDetailsGV.DataBind()
peopleDetailsGV.DataBind()
SupportDetailsGV.DataBind()
SystemDetailsGV.DataBind()
UATDetailsGV.DataBind()
End If
End Sub
Bezieht sich diese Frage auf Webformulare oder Windows Forms? Sie verwenden den Tag Windows Forms [tag: datagridview], verwenden aber auch den Tag [tag: asp.net]. –