在数据绑定asp listview时将CSS添加到表行

时间:2012-09-14 08:50:57

标签: asp.net css listview

我正在从代码隐藏中填充Listview控件。

有没有人知道我可以为表格单元格分配css样式的方式,是说最低价格大于亚马逊价格?

 <asp:ListView ID="lv1" runat="server" ItemPlaceholderID="itemPlaceholder" OnPagePropertiesChanging="ChangePage">
    <LayoutTemplate>
        <table id="dataTable">
            <thead>
            <tr>
                <th class="t-left">Product Title</th>
                <th>SKU</th>
                <th>Our Price</th>
                <th>Amazon Price</th>
                <th>Lowest Price</th>
                <th>Actions</th>
            </tr>
            </thead>
            <tbody  id="dataResults" >
            <tr id="itemPlaceholder" runat="server"></tr>
        </tbody>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
      <tr id='<%#Eval("sku") %>'>
       <td class="t-left" width="360px">
           <asp:HyperLink ID="prodLnk" runat="server" NavigateUrl='<%#"~/product/editproduct.aspx?sku=" + Eval("sku") %>' ToolTip="Edit this product listing">
                <asp:Label runat="server" ID="lblTitle"><%#Eval("title") %></asp:Label>
           </asp:HyperLink>
       </td>
       <td><asp:Label runat="server" ID="lblSku"><%#Eval("sku") %></asp:Label></td>
       <td><asp:Label runat="server" ID="lblTWE">£<%#Eval("twePrice") %></asp:Label></td>
       <td class="amzprice-edit"><input type="text" id='<%#"txt" + Eval("sku") %>' value='<%#Eval("amzPrice") %>'> </td></td>
       <td>
           <asp:Label runat="server" ID="lblLow">£<%#Eval("lowprice")%></asp:Label>
           <a href='<%#"lowpricedata.aspx?sku=" + Eval("sku") %>' id="lnkInfoGrpah" class="link-to info-graph" data-fancybox-type="iframe"><img src="images/icons/graph-icon.png" alt="Info" title="View Lowprice History" /></a>
       </td>

       <td><div class="twe-button mini update">Update</div></td>
      </tr>
    </ItemTemplate>
</asp:ListView>

1 个答案:

答案 0 :(得分:1)

最简单的方法是在对象/数据源中添加一个额外的属性,然后在数据绑定阶段使用它。

例如,创建一个名为LowestPrice

的布尔属性

然后,您可以在数据绑定时对此进行评估:

class='<%# Eval("LowestPrice") == true ? "BuyMeNow" : "BuyMeLater" %>'

上面的例子会变成:

<ItemTemplate>
  <tr id='<%#Eval("sku") %>' class='<%# Eval("LowestPrice") == true ? "BuyMeNow" : "BuyMeLater" %>'>
   <td class="t-left" width="360px">
       <asp:HyperLink ID="prodLnk" runat="server" NavigateUrl='<%#"~/product/editproduct.aspx?sku=" + Eval("sku") %>' ToolTip="Edit this product listing">
            <asp:Label runat="server" ID="lblTitle"><%#Eval("title") %></asp:Label>
       </asp:HyperLink>
   </td>
   <td><asp:Label runat="server" ID="lblSku"><%#Eval("sku") %></asp:Label></td>
   <td><asp:Label runat="server" ID="lblTWE">£<%#Eval("twePrice") %></asp:Label></td>
   <td class="amzprice-edit"><input type="text" id='<%#"txt" + Eval("sku") %>' value='<%#Eval("amzPrice") %>'> </td></td>
   <td>
       <asp:Label runat="server" ID="lblLow">£<%#Eval("lowprice")%></asp:Label>
       <a href='<%#"lowpricedata.aspx?sku=" + Eval("sku") %>' id="lnkInfoGrpah" class="link-to info-graph" data-fancybox-type="iframe"><img src="images/icons/graph-icon.png" alt="Info" title="View Lowprice History" /></a>
   </td>

   <td><div class="twe-button mini update">Update</div></td>
  </tr>
</ItemTemplate>

BuyMeNow为真时,将LowestPrice类应用于该行。