将标签文本转换为十进制



我想知道是否可以将标签转换为十进制。我知道这可以用一个文本框来完成,但我正在试着看看它是否能用标签来完成。这是代码,我收到错误输入消息。

Label sitL = ((Label)FormView2.FindControl("SitUpsLabel"));
Label pushL = ((Label)FormView2.FindControl("pushUpsLabel"));
int count = 0;
int counter2 = 0;
decimal val = Decimal.Parse(sitL.Text);
decimal val2 = Decimal.Parse(pushL.Text);

这样做没问题,但您不会像对文本框那样在客户端设置值。标签并没有发布到服务器上,在我看来,你们正在尝试处理用户输入。

话虽如此,请检查标签的内容是否可以转换为十进制。您可以使用返回false的Decimal.TryParse方法,而不是在字符串无法转换的情况下抛出异常。

问题是您的标签没有从客户端发布到服务器上

因为你想要一个标签的值,而这个标签不能由用户发布;我可以非常确定,通过调用DataBind,这些数据已绑定到该标签中。

由于您自己向标签提供数据,因此如果您需要处理这些数据,有一种更好的方法可以获得这些数据。

您应该使用FormView的DataItem属性。

此属性返回的对象的类型因数据源。例如,当SqlDataSource控件绑定到在FormView控件中,返回一个DataRowView对象。

像这样:

var myData = (DataRowView)FormView2.DataItem;
decimal val = myData["sitL"];
decimal val2 = myData["pushL"];