當GridView的資料是在程式裡面動態產生的時候,HtmlEncode屬性就無法在程式碼內設定,為了克服資料想顯示Htmlcode,所以將資料改用html顯示是一個辦法。
但是這樣就無法再做其他GridView相關的處理,所以我就去搜尋了,如何實現GridView的資料來源是動態產生,還可以設定BoundField屬性。
如下:


DataTable 轉成 HTML
Public Sub drawHtmlTable(ByVal dt As Data.DataTable)
    Dim html As String = ""

    html += "<table class='listTable'>"

    'draw Columns
    html += "<tr>"
    For c As Integer = 0 To dt.Columns.Count - 1
        html += "<th>"
        html += dt.Columns(c).ColumnName
        html += "</th>"
    Next
    html += "</tr>"

    'draw Rows
    For r As Integer = 0 To dt.Rows.Count - 1
        html += "<tr>"
        For c As Integer = 0 To dt.Columns.Count - 1
            html += "<td nowrap>"
            html += dt.Rows(r)(c)
            html += "</td>"
        Next
    Next

    html += "</table>"

    ltHtmlTable.Text = html
End Sub

DataTable 轉成 GridView
Public Sub drawGridView(ByVal dt As Data.DataTable, ByVal gv As Object)
    gv.DataSource = dt

    gv.Columns.Clear()

    For c As Integer = 0 To dt.Columns.Count - 1
        Dim bf As BoundField = New BoundField()
        bf.DataField = dt.Columns(c).ColumnName
        bf.HeaderStyle.Wrap = False
        bf.HtmlEncode = False
        bf.HeaderText = dt.Columns(c).ColumnName
        bf.ItemStyle.HorizontalAlign = HorizontalAlign.Left
        bf.HeaderStyle.Width = 200
        bf.ItemStyle.Width = 200
        gv.Columns.Add(bf)
    Next

    gv.DataBind()
End Sub

判斷字串是否為數字形式,如果是的話就做格式化處理。
If IsNumeric(dt.Rows(r)(c).ToString.Trim) Then
    number = Format(CDbl(dt.Rows(r)(c)), "0.##")
End If

arrow
arrow
    文章標籤
    asp.net
    全站熱搜

    伊 發表在 痞客邦 留言(0) 人氣()