首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ><%#新手入门-奇怪的错误

<%#新手入门-奇怪的错误
EN

Stack Overflow用户
提问于 2012-03-05 22:14:10
回答 3查看 176关注 0票数 1

我使用TemplateField将额外的“计算”列添加到绑定到数据库表的网格视图中。我得到了这个奇怪的错误,我不知道如何开始调试它。我可能在<%#语法上做了一些错误/不可行的事情,如果是这样,请让我知道是什么。我不能完全理解它。

代码:

代码语言:javascript
复制
<asp:TemplateField>
    <ItemTemplate>
    <asp:Label runat="server" Text='<%# Math.Round(decimal.Parse((((int.Parse(Eval("Num1").ToString())) * 36) / (235 * int.Parse(Eval("Num2").ToString()))).ToString()), 0); %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

错误: CS1525:无效的表达式术语',‘

Math.Round的第二个参数有一个comma...but its。或者我正在做一些用这种方式做不到的事情?此外,Math.Round行没有指出代码隐藏中的任何错误(我的括号应该是正确的)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-05 22:43:03

对我来说,它看起来还不错。然而,它看起来确实像是一行相当令人困惑的文本。如果Num1和Num2是数据库中的列,那么只需在表示表的类上添加一个属性即可。

因此,在定义Num1和Num2的位置旁边,定义另一个属性--不表示数据库中的列,而是对数据库中的值进行计算。

这将从一个特定的页面中删除计算,因此,如果您必须在某个地方再次使用它,您可以只引用该属性。

或者,您可以在代码中引用一个方法...

代码语言:javascript
复制
<%# GetComputedValue((int)Eval("Num1"), (int)Eval("Num2")) %>

protected string GetComputedValue(int num1, int num2)

不过,我更喜欢属性的想法,因为它是可重用的。

票数 1
EN

Stack Overflow用户

发布于 2012-03-05 22:17:01

在数据绑定表达式中,您只能使用一条语句。去掉";“。我相信语句本身是格式良好的。

票数 6
EN

Stack Overflow用户

发布于 2012-03-05 22:19:26

如果你真的需要四舍五入等功能,只需在你的代码中创建一个公共函数,并从数据绑定表达式中调用它。这样你就不会遇到逗号的问题,也不会把所有的逻辑都放在一个地方,这样以后维护一致性就更容易了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9568092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档