Gridview图片依赖于其他列

时间:2016-12-26 01:01:46

标签: c# asp.net gridview

我正在制作一个包含2列的gridview。第1列是名称值。第2列将有一张图片,该图片取决于第1列中名称的性别。这是我到目前为止的代码:

DataTable dy = new DataTable();
SqlDataAdapter dc = new SqlDataAdapter("SELECT name FROM recordTable", con);
dc.Fill(dy);
Grid1D.DataSource = dy;
Grid1D.DataBind();

和asp部分如下:

<asp:GridView ID="Grid1D" runat="server" CssClass="Grid1D"
    AutoGenerateColumns="false" Font-Names="Arial"
    Font-Size="11pt" AlternatingRowStyle-BackColor="#C2D69B"
    HeaderStyle-BackColor="green" AllowPaging="true"
    PageSize="10">
    <Columns>
        <asp:ImageField DataImageUrlField="PictureURL"></asp:ImageField>
        <asp:TemplateField HeaderText="Name List">
            <ItemTemplate>
                <asp:Label runat="server" Text='<%# Bind("name") %>'
                    ID="lblname" SelectedRowStyle="myselection" CssClass="reclabel" Width="100%" AutoPostBack="true" onclick="newrec()"></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

我只是不确定如何使用依赖于性别的图像A和B来填充图像域。我知道如果有一定数量的行但是它不一致会怎么做。

1 个答案:

答案 0 :(得分:1)

你可以这样做。但正如勒内指出你需要更多的列,比如

Name, Gender, image1 and image2

然后这样做

<asp:TemplateField>
    <ItemTemplate>

        <%# Eval("gender").ToString() == "F" ? "<img src=\"female.jpg\">" : "<img src=\"male.jpg\">"  %>    
        or    
        <%# Eval("gender").ToString() == "F" ? "<img src=\"" + Eval("image1").ToString() + "\">" : "<img src=\"" + Eval("image2").ToString() + "\">"  %>

    </ItemTemplate>
</asp:TemplateField>