日期:2014-05-20  浏览次数:20407 次

数字到星号的转换
前台DataList绑定推荐度 <%#   DataBinder.Eval(Container.DataItem, "commend ")   %> ,这样显示出来的是数字,但是我想让它显示相应数量的 "★ "号,如何处理。
3         ★★★
4         ★★★★
1         ★
2         ★★
我就是想要后面的效果,麻烦各位给点意见,谢谢。

------解决方案--------------------
绑定的时候动态添加一个列 通过数字来获取★。。
------解决方案--------------------
把★做成图片
1对应一个★的图片
2对应二个★★的图片
.....
图片命名为1.jpg 2.jpg
然后...
不用说了吧。。
------解决方案--------------------
<%# ShowCustom(DataBinder.Eval(Container.DataItem, "commend ").ToString()) %>

在.cs里定ShowCustom方法。
public string ShowCustom(string strnum)
{
int num = Convert.Int32(strnum);
string r= " ";
for(int i=0;i <num;i++)
{
r+= "* ";
}
return r;
}
------解决方案--------------------
首先你绑顶数字那一列应该隐藏,然后在ItemDataBound()那个事件里写代码,在另一个列里根据从隐藏列里取出的数据绑定相应数量的“★”;
我在Datagrid里是这样可以!DataList应该一样吧!
private void dgAllRes_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lb = (Label)e.Item.Cells[11].FindControl( "lblIsCommend ");//取你要显示信息的那一列
int commend = Convert.Toint32((e.Item.Cells[1].Text).ToString());//取隐藏列的值
if(commend==1)
{
lb.Text = "★ ";
}
//同样````搞一下应该可以了!大概是这样的```!

}
}