функция asp Eval - PullRequest
       8

функция asp Eval

0 голосов
/ 31 июля 2010

Могу ли я сохранить возвращаемое значение функции eval в переменной и использовать его там, где я хочу?я могу назвать это только в <asp: .... тегах.Я не могу использовать их в методах VB.это возможно?

1 Ответ

1 голос
/ 01 августа 2010

Eval("foo") является ярлыком для DataBinder.Eval(Container.DataItem, "foo"). Container.DataItem содержит фактические данные, которые вы пытаетесь получить, а метод Eval() просто использует отражение или другие средства, чтобы разрешить позднее связывание имен.

Если вы хотите улучшить проверку типов во время компиляции, вы всегда можете привести Container.DataItem к любому типу, который вы хотите.

Вы также можете повторно использовать DataBinder.Eval() в другом месте, как ярлык для использования Reflection.

Ниже приведены некоторые примеры того, что вы можете сделать:

<%# 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
...