我已經看過了,從我所知道的情況來看,這是一個你不能擁有你的蛋糕並且也不能吃它的情況,但是我想我會問在任何情況下都知道我可以使用的解決方法。列中的多個數據類型
我建立了一個DataGridView控件編程,基本上有兩欄,字段名稱和值,源數據來自我們的CRM系統,它以複雜的方式存儲,所以這被認爲是最好的格式檢索。
我遇到的問題是,它將不會呈現從數據庫中繪製HTML標記時,與電子郵件地址相同,我手動將它們轉換爲hrefs,以便他們可以簡單地在頁面上單擊以打開新郵件。
在下面的例子中,存儲在數據庫中的是http://地址,我將它製作成html標籤,否則它只是將URL顯示爲純文本。
result.value = "<a href= """ & result.value & ">" & result.value & "</a>"
Display of data - added href tags
從項目我讀過,加入的HTMLEncode的價值會的工作,但事實並非如此。
result.value = HttpUtility.HtmlEncode(result.value)
Display of data - added htmlencode
有沒有人對我怎樣才能使此列顯示兩個字符串和超鏈接的任何想法?
我使用的完整的方法是在這裏:
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
這個問題涉及到網頁窗體或窗體?您正在使用Windows窗體[tag:datagridview]標籤,但也使用[tag:asp.net]標籤。 –