0

当社の従業員を紹介する小さなページを書いています。データベースから情報を取得するためのクエリを作成しました。次に、それを GridView にバインドして、汚い作業を行います。これがクエリです。

"SELECT tblEmpID.empid AS [Empl ID], tblEmpID.posno AS [Pos #], [name] & ""<br />""  &   [jcn] & ""("" & [jcc] & "")"" AS [Name/Job], [orgno] & "" - "" & [depname] AS Department, tblEmpID.[status] AS Status " & _
        "FROM tblEmpID " & _
        "ORDER BY [orgno] & "" - "" & [depname], tblEmpID.name "

ご覧のとおり
、SQL 内に a を含めようとしているので、レンダリングすると次のようになります。

Name
Job Description

しかし、レンダリングすると、次のようにレンダリングされます

&lt; and &gt;

私が望むようにフォーマットするのではなく、レコードに <br /> を効果的に表示します。

では、私が望むようにレンダリングするにはどうすればよいですか? < を \ でエスケープしようとしましたが、うまくいきませんでした。


編集: gfrizzle に感謝します。あなたの答えは私を正しい道に導きました。また、NYSystemsAnalyst に感謝します。あなたの答えは、私が将来物事を行うための別の方法を考えるのに役立ちました. 最終的に、私は別の解決策を見つけました。このコードを GridView1_RowDataBound イベントに配置すると、必要なことが実行されます。

If e.Row.RowType = DataControlRowType.DataRow Then
        Dim cells As TableCellCollection = e.Row.Cells

        For Each cell As TableCell In cells
            cell.Text = Server.HtmlDecode(cell.Text)
        Next
    End If
4

2 に答える 2

1

GridViewの列にHtmlEncode="False"を設定してみてください。これで、マークアップのエンコードが停止するはずです。

于 2008-11-14T19:26:18.690 に答える
0

読み取り専用でこれを行う場合は、リピーターコントロールの使用を検討することをお勧めします。次に、それらを個別のフィールドとして返すことができるため、SQL結果セットからHTMLを削除できます。次に、コントロールのItemTemplateを使用して、HTMLと、結果の表示方法を正確に指定できます。それらをテーブルに配置し、BRタグを使用できます。これはグリッドに似ていますが、HTML/.aspx側のレイアウトをより細かく制御できます。

于 2008-11-14T19:25:29.130 に答える