[c#]Gridview 图片依赖其他列

标签: Asp.net GridView C#
发布时间: 2017/2/25 3:54:17
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在 gridview 与 2 列。第 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>

我只是不确定如何填充来自定义 imagefield 与图像 A 和 B 取决于性别。我知道如何去做它,如果有一定数量的行,但它并不一致。

解决方法 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>

了解更多 tenary 运营商︰ ?: 三元运算符

官方微信
官方QQ群
31647020