将SQL数据为数字时显示给用户的文本更改为可读字符串

本文关键字:文本 字符串 给用户 数据 SQL 数字 显示 | 更新日期: 2023-09-27 18:12:46

我试图改变显示的文本,当我有gridView填充从SQL抓取的数据。目前在数据库中的值:0,1,2存储为我的条目,但我需要有这些显示为"春,夏,秋"。有没有办法从代码背后做到这一点?

下面是我的代码:

<asp:GridView runat="server" ID="GridView1" AutoGenerateColumns="false"  DataKeyNames="season">
<Columns>
  <asp:TemplateField HeaderText="Season" ControlStyle-CssClass="semID">
    <ItemTemplate>
      <asp:Label ID="lbl" runat="server" Text='<%# Bind("season") %>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
      <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("season") %>'></asp:TextBox>
    </EditItemTemplate>
  </asp:TemplateField>
...
...
</Columns>
</asp:GridView>

我试过做一个RowDataBound函数,但据我所知,它从来没有火灾。或者它改变了,但不改变文本值。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
  DataRowView drv = (DataRowView)e.Row.DataItem;
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
    if (drv["Season"].ToString() == "0")
    {
      e.Row.Cells[0].Text = "Spring";
    }
    else if....for 1 and 2 similar to above.
  } 
}

将SQL数据为数字时显示给用户的文本更改为可读字符串

尝试在RowDataBound事件中设置一个断点并调试以确定它是否触发。此外,您是否添加了OnRowDataBound="GridView1_RowDataBound"属性到GridView定义?