前台绑定后台方法
前台页面
<asp:Repeater runat="server" ID="rpCaiLiao">
<ItemTemplate>
<tr style=" border:0px" class="tbHang">
<td>
<%#Eval("Num")%>
</td>
.........
后台页面 方法:
public decimal Round(object a)
{
decimal b = Convert.ToDecimal(a);
decimal c= Math.Round(b, 2);
return c;
}
前台绑定后台方法
<%#Round(Eval("Num"))%>
这样为什么报错:当前上下文中不存在名称Round,之前这样是可以的,就运行之后页面不显示值。 哪里写错了吗?
[解决办法]
你直接这样呗,干嘛还写个方法啊?
<%#Math.Round(Convert.ToDecimal(Eval("Num")), 2)%>
[解决办法]
decimal b = Convert.ToDecimal(a);
object不能与 decimal强转。
decimal b = Convert.ToDecimal(a.ToString());
[解决办法]
<%#Convert.ToDecimal(Eval("Num")).ToString("#0.00")%>
[解决办法]
不好意思。6楼说错了
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
DataTable table = new DataTable();
table.Columns.Add("Dosage", typeof(decimal));
table.Columns.Add("Drug", typeof(string));
table.Columns.Add("Patient", typeof(string));
table.Columns.Add("Date", typeof(DateTime));
table.Rows.Add(25.343, "Indocin", "David", DateTime.Now);
table.Rows.Add(50.555, "Enebrel", "Sam", DateTime.Now);
table.Rows.Add(10.345456, "Hydralazine", "Christoff", DateTime.Now);
table.Rows.Add(21.0, "Combivent", "Janet", DateTime.Now);
table.Rows.Add(100.343, "Dilantin", "Melanie", DateTime.Now);
test.DataSource = table;
test.DataBind();
}
}
public decimal Round(object a)
{
decimal b = Convert.ToDecimal(a);
decimal c = Math.Round(b, 2);
return c;
}
public decimal ab(object a)
{
return 1212312;
}
<asp:Repeater ID="test" runat="server">
<ItemTemplate>
<table style="border:1px solid red" cellspacing="0">
<tr>
<td><%#Round(Eval("Dosage")) %>
<%#ab(Eval("Dosage")) %></td><td>
<%#Eval("Drug") %></td>
<td><%#Eval("Patient") %></td><td>
<%#Eval("Date") %></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>