【问题标题】:What's the cleanest way to render the results of a method while data binding?在数据绑定时呈现方法结果的最简洁方法是什么?
【发布时间】:2009-06-10 15:17:48
【问题描述】:

当然,最好的方法是将方法转换为属性。但我不能在这里做--

我们有一个来自其他人的 API,并且我们已经向其中一个对象添加了一个扩展方法。我们需要此方法在数据绑定情况下返回的字符串(GridView)。

我们似乎无法添加扩展property(伙计,那会非常好......),所以我有这个方法,我想要最干净的方法在数据绑定中渲染它:

虽然我可以使用属性来做到这一点:

<%# Eval("MyProperty") %>

我必须用一种方法来做到这一点:

<%# ((MyClass)Container.DataItem).MyExtensionMethod() %>

这就是我过去的做法,但还有比这更清洁的方法吗?我无法更改类(它不是我的),也无法添加扩展属性,所以我坚持使用这种方法。

【问题讨论】:

    标签: asp.net data-binding extension-methods


    【解决方案1】:

    我想您可以编写自己的方法,将Container 对象和方法名称作为字符串,然后使用反射来调用该方法。它最终看起来像这样:

    <%# Call(Container, "MyExtensionMethod") %>
    

    我怀疑你能比这更干净,因为Eval 是一个在编译时重写的特殊情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 2020-06-12
      • 2011-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多