我正在制作一个包含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来填充图像域。我知道如果有一定数量的行但是它不一致会怎么做。
答案 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>