我正在尝试更改当我使用从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.
}
}
答案 0 :(得分:1)
尝试在RowDataBound事件中设置断点并进行调试以确定它是否会触发。另外,您是否将OnRowDataBound="GridView1_RowDataBound"
属性添加到GridView定义中?