在 Repeater 控件的显示时,有时需要根据得到的数据条件,按要求显示出来。但直接在 .aspx 代码中直接操作可能比较困难。
如下面的方法可以解决这个问题
<input type="button" style="color:<%# (int)Eval("shYiJian")>0?"#FF0000":"#000000" %>" onclick='getTimu(<%#Eval("ID") %>)' value='试题编号:<%#Eval("ID") %>' />
利用这个方法,可以根据 shYiJian 字段的值作出判断,进而设定其颜色值分别为 "#FF0000" 或 "#000000" ,注意一定要加上 引号。
但是这种方法只能设置两种颜色,如果要考虑更多的颜色设置,那么用这种方法,显然有点太麻烦了。
那就用下面的方法吧。
public string setcolor(string shYiJian)
{
int pn = int.Parse(shYiJian);
string s = "#000000";
if (pn == 0)
s = "style=\"color:#0000ff\"";
if (pn < 0)
s = "style=\"color:#000000\"";
if (pn > 0)
s = "style=\"color:#ff0000\"";
return s;
}
{
int pn = int.Parse(shYiJian);
string s = "#000000";
if (pn == 0)
s = "style=\"color:#0000ff\"";
if (pn < 0)
s = "style=\"color:#000000\"";
if (pn > 0)
s = "style=\"color:#ff0000\"";
return s;
}
借助于这个函数 在 .aspx 文件中引用这个函数就可以了
.aspx中的相关代码如下
<input type="button" <%# setcolor(DataBinder.Eval(Container.DataItem, "shYiJian").ToString()) %> onclick='getTimu(<%#Eval("ID") %>)' value='试题编号:<%#Eval("ID") %>' />
最终结果如图所示: