如何将html绑定到Gridview列?

时间:2014-01-31 12:05:02

标签: c# gridview webforms

我在谷歌搜索了很多这个。但是,我没有得到任何线索。 谢谢大家。

问题:我的数据表列中有一个html源代码。当它与我的gridview绑定时,我需要在gridview列中显示该html输出。可能

当前输出:

enter image description here

我的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。

4 个答案:

答案 0 :(得分:5)

尝试使用 - HttpUtility.HtmlDecode("Lane 1 Suite # 2 <br>")

标记将是,

<asp:TemplateField HeaderText="Address">
    <ItemTemplate>
        <%# HttpUtility.HtmlDecode(Eval("Address").ToString()) %>
    </ItemTemplate>
</asp:TemplateField> 

参考:http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx

答案 1 :(得分:3)

在您的bounfield属性中将HtmlEncode设置为false

<asp:BoundField HeaderText="Address" DataField="YourDataField" HtmlEncode="false" />

BoundField HTML Encode Property MSDN

答案 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>