条件图像模板列

时间:2016-03-02 05:28:20

标签: c# asp.net gridview

我正在使用Visual Studio 2015和实体框架6.我有一个GridView,我希望它上面的status列显示四种不同类型的图像,具体取决于该字段中的字符串数据库。我希望用模板完成它。

这是我的GridView

<asp:GridView ID="gvStatus" runat="server" Height="184px" 
        Width="1359px"  AutoGenerateColumns="false" AllowSorting="true" >
    <HeaderStyle Font-Bold="true" Font-Size="16pt" BackColor="#cc0000" ForeColor="Black"/>
    <RowStyle Font-Size="12pt" BackColor="#afadad" ForeColor="White"/>
    <AlternatingRowStyle BackColor="#afadad" ForeColor="White" />

    <Columns>
        <asp:CommandField HeaderText="" SelectText="Delete" ShowSelectButton="true" ControlStyle-ForeColor="White"   />   
        <asp:BoundField HeaderText="Status" DataField="Status"  />    
    </Columns>
</asp:GridView>

如何让status列显示四个不同的图像,具体取决于哪个字符串?

1 个答案:

答案 0 :(得分:1)

你可以这样做:

<Columns>
    <asp:TemplateField >
        <HeaderStyle Width="10%" />                               
        <ItemTemplate>   
            <asp:Image  ID="Image1" runat="server" ImageUrl='<%#GetImagePath(Eval("img").ToString())%>' />                  
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

在后面的代码中:

public string GetImagePath(object value)
{
    if (string.IsNullOrEmpty(Convert.ToString(value))) return string.Empty;
    var x = int.Parse(value.ToString());
    return x > 0 ? "Your Image Path" : "Default Image Path";
    //Here I show two different types of images depending on int value in that field from the database you can change it to four type with if-else and also depending on string value
}