<% Double x = %><%#DataBinder.Eval(Container.DataItem, "limsdata")%><%; %>
<% int y=0; Char[] a=x.ToString().ToCharArray(0,x.ToString().Length%><%); %>
<% for (int i = 0; i < x.ToString().Length; i++)
   {
      if (a[i] != '0' && a[i]!='.')
      {
           y = i;
           break;
      }
   }
   for (int i = 0; i < y+2; i++)
   {
      Response.Write(a[i]);
  } 
%>
本人想在页面中获取绑定到DataGrid的值,然后进行数据处理(让其显示为两位有效数字),处理之后在接着绑定到DataGrid上显示。

解决方案 »

  1.   

    asp的代码风格,顶一下同时也没有明白说什么问题
      

  2.   

    <% Double x = %> <%#DataBinder.Eval(Container.DataItem, "limsdata")%> <%; %> 
    你想把DataBinder.Eval(Container.DataItem, "limsdata")的值赋给x
    你这种想法,很好很强大
    可惜这是语法错误,你要处理,可以在ItemDataBound事件里处理,建议你先系统的学习一下asp.net
    尤其是关于数据绑定方面的内容。
      

  3.   

    顶一下一楼的。
     也可以在SQL语句里面直接搞定
      

  4.   

    <%#DataBinder.Eval(Container.DataItem, "limsdata", "#,##0.00")%> //这样直接带格式字符串就可以了。
      

  5.   

    两位有效数字,指小数点后面2位?用DataFormatString="{0:0.00}"
    如果只显示2住,试下<%#Eval("A").ToString().PadLeft(2,'x').Substring(Eval("A").ToString().Length-2,2) %>
      

  6.   

    建议在ItemDataBound里处理,呵呵,先去看下相关的书就能解决了。
      

  7.   

    <asp:DataGrid ID="DataGrid1" runat="server">
            <Columns>
                <asp:BoundColumn DataField="limsdata" DataFormatString="{0:f}"></asp:BoundColumn>
            </Columns>
        </asp:DataGrid>用绑定字段,DataFormatString这是格式化只显示小数点后2位,lz是这个意思吧
      

  8.   

    虽然少见,但是存在就是合理的,没有现成的方法可以调用,放到ItemDataBound事件里在后台处理比较好。
      

  9.   

    给你一个演示的例子,按你的想法做的
    aspx页面:
    <asp:GridView ID="gv1" runat="server" OnRowDataBound="gv1_RowDataBound"></asp:GridView>后台cs代码页面:
    protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            float x = float.Parse(e.Row.Cells[0].Text);
            e.Row.Cells[0].Text = "";        int y = 0; 
            Char[] a = x.ToString().ToCharArray(0, x.ToString().Length);
            for (int i = 0; i < x.ToString().Length; i++)
            {
                if (a[i] != '0' && a[i] != '.')
                {
                    y = i;
                    break;
                }
            }
            for (int i = 0; i < y + 2; i++)
            {
                e.Row.Cells[0].Text+=(a[i]);
            }
        }
    }
      

  10.   


    两位有效数字不是你理解的那个样子!我给你个例子吧! 
    例如:0.1234 保留两位有效数字之后应该显示为 0.12 
    double dd = 0.1234;
    string str = dd.ToString("0.##");
    str 值为("0.12")
      

  11.   

    VS2005代码:<%#Eval("limsdata","{0:F2}") %>