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

时间:2014-07-14 16:22:32

标签: c# asp.net sql gridview

我正在尝试更改当我使用从SQL中获取的数据填充gridView时显示的文本。目前在数据库中为我的条目存储了值 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.
  } 
}

1 个答案:

答案 0 :(得分:1)

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