日期:2014-05-17  浏览次数:20397 次

.net中的#Eval问题
<asp:Repeater ID="RepAnnoucelist" runat="server">
  <ItemTemplate>
  <tr>
  <td><%#Eval("id") %></td>
  <td><%#Eval("title")%></td>
  <td><%#Eval("content")%></td>
  <td><asp:Label ID="Label1" runat="server" Text='<%#Eval("titlecolor")%>'
ForeColor='<%#Eval("titlecolor")%>' ></asp:Label>
  </td>
  <td><%#Eval("author")%></td>
  <td><%#Eval("begintime")%></td>
  <td><%#Eval("endtime")%></td>
  <td><%#Eval("redirecturl")%></td>
  <td><asp:LinkButton ID="dellinkbtn" OnClientClick="return confirm('是否要真的删除吗?')" onclick="dellinkbtn_Click" CommandArgument='<%#Eval("id")%>' runat="server">删除</asp:LinkButton>&nbsp&nbsp&nbsp<a href="AnnouceUpdate.aspx?id=<%#Eval("id") %>">修改</a></td>
  </tr>
  </ItemTemplate>
  </asp:Repeater>

红色的地方我希望把数据库中存的颜色变成我这段文字的颜色,请教需要怎么修改呀,运行时错误为:

用户代码未处理 System.InvalidCastException
  Message=指定的转换无效。
  Source=App_Web_qep401ad
  StackTrace:
  在 ASP.admin_annoucelist_aspx.__DataBinding__control4(Object sender, EventArgs e) 位置 f:\jue1\MyTest\MyProj\WebSite\Admin\annoucelist.aspx:行号 32
  在 System.Web.UI.Control.OnDataBinding(EventArgs e)
  在 System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
  在 System.Web.UI.Control.DataBind()
  在 System.Web.UI.Control.DataBindChildren()
  InnerException: 


------解决方案--------------------
EVAL不能写在服务器控件中
可以写成这样
 <td><span style='color:<%#Eval("titlecolor")%>'><%#Eval("titlecolor")%></span>
 
------解决方案--------------------
<asp:Label ID="Label1" runat="server" Text='<%#Eval("titlecolor")%>'
ForeColor='<%#Eval("titlecolor")%>' ></asp:Label>
改成
<span style='color:<%#Eval("titlecolor")%>'><%#Eval("titlecolor")%></span>
没有必要过多时服务器控件