首页 > 解决方案 > c#如何在gridview中格式化字符串

问题描述

我从数据库中获取两列,一列的数据类型为 varbinary。我将 varbinary 列转换为 byte[],然后转换为字符串。代码适用于控制台应用程序并保持字符串格式。但是当我在 Web 应用程序中使用相同的代码并在 GridView 中显示数据时,它会丢失格式。例如:

你好

世界

将在网格视图中显示为 Hello World。这是我的代码:

    SqlConnection con = new SqlConnection("Data Source=.; Initial Catalog=legal; Integrated Security=True");
    SqlCommand cmd = new SqlCommand("usp_output_repayment  @id=1", con);

    con.Open();
    SqlDataReader dr = cmd.ExecuteReader();
    DataTable dt = new DataTable();
    dt.Columns.Add("Category");
    dt.Columns.Add("Description");

    while (dr.Read())
    {
    DataRow dr1 = dt.NewRow();

        dr1["Category"] = dr[0];
        dr1["Description"] = System.Text.ASCIIEncoding.ASCII.GetString((byte[])dr[1]).Normalize();
        dt.Rows.Add(dr1);


    }

    GridView1.DataSource = dt;
    GridView1.DataBind();

标签: c#asp.net

解决方案


当您在 asp.net 端工作时,您应该DataBound在 gridview 中使用以及设置AutoGenerateColumns="false"

HtmlEncode="false"现在,如果您要获得任何格式的描述,然后将其用于您使用的列,这是我的主要观点

GridView 的少量代码,您将不得不按照描述的格式使用这些代码。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:BoundField DataField="Description" HeaderText="Description" HtmlEncode="false" />
        </Columns>
    </asp:GridView>

HtmlEncode="true"我使用或删除它时可能遇到的错误格式

在此处输入图像描述

HtmlEncode="false"根据以下结果测试并使用良好

在此处输入图像描述


推荐阅读