如何在gridview中基于eval更改项目模板中的显示文本
本文关键字:项目 文本 显示 eval gridview | 更新日期: 2023-09-27 17:57:47
我有一个GridView,有一个名为status的列。在显示此列中的值时,我使用了itemtemplate。目前,它显示了EVAL值的结果,但我想显示基于EVAL值的文本。
<asp:GridView ID="GridView1" runat="server"/>
<Columns>
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<%# Eval("ICB_SUBS_STATUS")%>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Eval("ICB_SUBS_STATUS")%>'>
<asp:ListItem Value = '0'>Applet not installed.</asp:ListItem>
<asp:ListItem Value = '1'>ICB Service not activated. Applet installed.</asp:ListItem>
<asp:ListItem Value = '2'>Active ICB Subscriber. Applet installed.</asp:ListItem>
<asp:ListItem Value = '3'>Subscriber deactivated ICB. Applet installed.</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
和上面的情况一样,在编辑模板上,下拉列表文本是根据值显示的。此外,我想在网格视图的正常显示上显示文本。任何想法和建议都将非常有帮助!!对不起,如果我的英语不好!
在代码背后创建一个方法,将该值转换为可读字符串。
protected string Translate_ICB_SUBS_STATUS(int ICB_SUBS_STATUS)
{
switch (ICB_SUBS_STATUS)
{
case 0:
return "Applet not installed.";
case 1:
return "ICB Service not activated. Applet installed.";
...
}
}
然后在绑定中,使用方法
<ItemTemplate>
<%# this.Translate_ICB_SUBS_STATUS(Int32.Parse(Container.DataItem("ICB_SUBS_STATUS").ToString())) %>
</ItemTemplate>