aspx页面中有一个Repeater控件,当然GridView和DataList其它的也行。
字段“dwzj”是一个招商项目中的“投资总额”,现在我要在这个页面中把它的值除以10000后显示。
比如数据库是显示为22334400.15,我要显示出来的效果是2233.440015.
(其实我想只保留两位小数的,但不知道怎么在aspx页面中实现,即显示结果为2233.44)
<asp:Repeater ID="RPT_ProjectHZn" runat="server" OnItemDataBound="RPT_ProjectHZn_ItemDataBound">
     <ItemTemplate>
       <tr>
           <td><%# Eval("tzze") %></td>
       </tr>
     </ItemTemplate>
</asp:Repeater>
--------------------------------------------------------
<%# Eval("tzze")/10000.0 %>驶这样是不行的,object类型与doculbe不能相除。
我在msdn的支持下看到这样的显示转换的写法:
<%# ((System.Data.DataRowView)Container.DataItem)["tzze"] %>
没有太理解这是转换成了什么,我把System.Data.DataRowView改成System.Double后也通不过,会报错的。希望论坛上的朋友帮忙解答下,如果能全面的解答一下前台的数据绑定以及操作最好。
我很穷,论坛的积分不多,所以没有多少分给了,诸位见谅!好了,发贴寻解!

解决方案 »

  1.   

    报的啥错,还是object类型与double不能相除?
    实在不行就遍历下,格式化这个Repeater啊
      

  2.   

    "实在不行就遍历下,格式化这个Repeater啊"
    这意思没懂,朋友贴上代码如何。
      

  3.   

    <%= Double.Parse( Eval("aa").ToString() )%>
      

  4.   

    <%# Double.Parse(Eval("tzze").ToString()).ToString() %>
    这种写可以把类型转换成Double再转换成string类型显示。
    但是这中间不能进行运算,Double.Parse(Eval("tzze").ToString())/10000
    这样以后没有String.Parse()这样的方法把它再转换成String类型显示出来。
    要怎么写解决运算问题呢,我要把它转换成Double类型就是要解决运算的。 
      

  5.   

    在模版绑定数据源中用
    <td><%= Double.Parse(Eval("tzze")).ToString()%></td>
    这种写法是会报错的。编译通不过。
      

  6.   

    <asp:Repeater ID="RPT_ProjectHZn" runat="server" OnItemDataBound="RPT_ProjectHZn_ItemDataBound"> 
        <ItemTemplate> 
          <tr> 
              <td> <%#MoneyDeal(Eval("tzze")) %> </td> 
          </tr> 
        </ItemTemplate> 
    </asp:Repeater> protected string MoneyDeal(object objTZZE)
    {
      string re="";
      try{
      Double d=Convert.ToDouble(objTZZE);
      d=d/(10000.00M);
      re=d.ToString("#0.00")
      }
      return re;
    }
      

  7.   

    我没有试,看这个写法,应该可以的,试试看如果不行的话,那你就在RowDataBound或都是ItemDataBound事件里去计算再给绑定
      

  8.   

    Sorry ````
    protected string MoneyDeal(object objTZZE)
    {
      string re="";
      try{
      Double d=Convert.ToDouble(objTZZE);
      d=d/10000.00;  //(去掉这里的 M)
      re=d.ToString("#0.00")
      }
      return re;
    }