2010-05-22 39 views
0

我在绑定表达式中使用代码隐藏函数(称为TestFx)。我传递一个字符串,该函数接受一个字符串,但我仍然得到一个运行时错误,说无效的参数。asp.net databinding字符串被传递到函数,但运行时发生

但是,如果我改变方法来接受一个对象,并检查值,“它是一个字符串!” 有人可以解释一下吗?

-ROD

ProductDescription: 
       <asp:Label ID="ProductDescriptionLabel" runat="server" 
        Text='<%# TestFx(Eval("ProductDescription")) %>' /> 
       <br /> 

回答

0

Eval返回类型是object。正如你已经注意到了,你可以改变你的方法的签名接受一个对象,或者您可以在Eval("ProductDescription")结果强制转换为字符串:

<asp:Label ID="ProductDescriptionLabel" runat="server" 
        Text='<%# TestFx(Eval("ProductDescription").ToString()) %>' /> 
+0

或者如果您知道该项目将是一个字符串,您可以将其转换为一个字符串而不是调用“ToString” – R0MANARMY 2010-05-22 19:54:13

1

另一种选择是,以处理转发器控制ItemDataBound事件。如果ItemTemplate元素需要复杂装饰,则更合适