asp Eval函数

时间:2010-07-31 08:35:46

标签: asp.net vb.net eval

我可以将eval函数的返回值保存在变量中并在任何我想要的地方使用它吗? 我可以在<asp: ....标签中调用它。我不能在vb方法中使用它们。有可能吗?

1 个答案:

答案 0 :(得分:1)

Eval("foo")DataBinder.Eval(Container.DataItem, "foo")的快捷方式。 Container.DataItem包含您尝试获取的实际数据,Eval()方法仅使用反射或其他方法来允许对名称进行后期绑定。

如果您想要更好的编译时类型检查,您始终可以将Container.DataItem转换为您想要的任何类型。

您也可以在其他地方重复使用DataBinder.Eval(),作为使用反射的快捷方式。

您可以做的一些示例如下:

<%# DoSomethingWithData (DataBinder.Eval(Container.DataItem, "Foo")) %>

Sub DoSomethingWithData (Object data)
   SomeProperty = data
   DoSomethingWithData = data
End Sub

<%# DoSomethingWithDataStronglyTyped (Container.DataItem) %>

Sub DoSomethingWithDataStronglyTyped (Object data)
   Dim StronglyTyped as SomeType
   StronglyTyped = DirectCast (data, SomeType)
   DoSomethingWithDataStronglyTyped = DoSomethingElse(StronglyTyped)
End Sub

Sub ExampleOfDataBinderEvalReuse ()

   Dim StronglyTyped as SomeType
   StronglyTyped = GetSomeData()

   ' get "Foo" property of the SomeType class
   DataBinder.Eval(StronglyTyped, "Foo")
End Sub