我在谷歌搜索了很多这个。但是,我没有得到任何线索。 谢谢大家。
问题:我的数据表列中有一个html源代码。当它与我的gridview绑定时,我需要在gridview列中显示该html输出。可能?
当前输出:
我的aspx代码:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dtEmployees = new DataTable();
dtEmployees.Columns.Add(new DataColumn("FirstName", typeof(System.String)));
dtEmployees.Columns.Add(new DataColumn("LastName", typeof(System.String)));
dtEmployees.Columns.Add(new DataColumn("HomePhone", typeof(System.String)));
dtEmployees.Columns.Add(new DataColumn("CellPhone", typeof(System.String)));
dtEmployees.Columns.Add(new DataColumn("Address", typeof(System.String)));
DataRow drEmpDetail = dtEmployees.NewRow();
drEmpDetail["FirstName"] = "Tony";
drEmpDetail["LastName"] = "Greg";
drEmpDetail["HomePhone"] = "000-000-0000";
drEmpDetail["CellPhone"] = "000-000-0000";
drEmpDetail["Address"] = "Lane 1 Suite # 2 <br>";
}
例如,在地址列中,我为“break标记”提供了html标记。但是在输出中它只显示为字符串,结果不符合预期。
注意:我不想使用模板字段而不是BoundField。
答案 0 :(得分:5)
尝试使用 - HttpUtility.HtmlDecode("Lane 1 Suite # 2 <br>")
标记将是,
<asp:TemplateField HeaderText="Address">
<ItemTemplate>
<%# HttpUtility.HtmlDecode(Eval("Address").ToString()) %>
</ItemTemplate>
</asp:TemplateField>
答案 1 :(得分:3)
在您的bounfield属性中将HtmlEncode
设置为false
<asp:BoundField HeaderText="Address" DataField="YourDataField" HtmlEncode="false" />
答案 2 :(得分:0)
您可以使用HttpUtility.HtmlDecode
如果您使用的是.NET 4.0+,您还可以使用WebUtility.HtmlDecode,它不需要额外的程序集引用,因为它在System.Net命名空间中可用。
答案 3 :(得分:0)
像这样设计你的网格视图
<asp:GridView runat="server" ID="gv1" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="FirstName" DataField="FirstName" />
<asp:BoundField HeaderText="LastName" DataField="LastName" />
<asp:BoundField HeaderText="HomePhone" DataField="HomePhone" />
<asp:BoundField HeaderText="CellPhone" DataField="CellPhone" />
<asp:BoundField HeaderText="Address" DataField="Address" HtmlEncode="false" />
</Columns>
</asp:GridView>