急急急!!datalist控件如何读取数据库中的标示显示不同的颜色
前台代码:
  <asp:DataList ID="DataList1" runat="server" RepeatColumns="2"   
   RepeatDirection="Horizontal" Height="469px" Width="633px"   
   OnItemDataBound="DataList1_ItemDataBound">      
   <ItemTemplate>
   <table border="1">
   <tr>
   <td style="width: 183px; height: 21px">
   楼层:<%#Eval("BuildFloor")%></td>
   </tr>
   <tr>
   <td style="width: 183px; height: 21px">
   室号:<asp:Label ID="lbl" runat="server" Text='<%#Eval("RoomNumber")%>'></asp:Label></td>
   </tr>    
   </table>
   </ItemTemplate>
</asp:DataList>
后台代码:
  protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
   {
   buildID = Convert.ToInt32(Request["BuildID"].ToString());
   DataTable dts = new DataTable();
   dts = build.GetRoomByID(roomID, buildID);
   for (int i = 0; i < dts.Rows.Count; i++)
   {
   string strName = dts.Rows[i]["State"].ToString();      
   if (strName == "小定")
   {    
   Label lbl = (Label)e.Item.FindControl("lbl");
   lbl.BackColor = System.Drawing.Color.Blue;
   }
   else if (strName == "大定")
   {    
   Label lbl = (Label)e.Item.FindControl("lbl");
   lbl.BackColor = System.Drawing.Color.Red;
   }
   else if (strName == "全额")
   {    
   Label lbl = (Label)e.Item.FindControl("lbl");
   lbl.BackColor = System.Drawing.Color.Yellow;
   }      
   strName = null;
   }
   }
   }
我想实现每个<ItemTemplate>对应数据库字段"state"显示不同的颜色,但是颜色全变成最后一个遍历的数据对应的颜色,有没有办法让它们颜色不同。
------解决方案--------------------
你这个代码逻辑错得离谱,现在不知道具体情况,稍加改动试试:
for (int i = 0; i < dts.Rows.Count; i++)
  {
 string strName = dts.Rows[e.Item.ItemIndex]["State"].ToString();
。。。。。。
}