如何在 BoundField 元素中的 DataField 上调用字符串扩展方法?
想象一下,我在字符串类型上引入了一个名为 Shorten() 的扩展方法,它仅获取前 50 个字符并返回它。
如果我想在 GridView 的绑定字段上调用此方法,那么最简单的调用方法是什么,以便在屏幕上看到消息的缩短版本。
<!-- TODO: How to call .Shorten() extension method on the ItemDescription in markup: --!>
<asp:BoundField HeaderText="Items" DataField="ItemDescription"...>
Imagine that I introduced an extension method on string type called Shorten() which gets only the first 50 characters and returns it.
If I want to call this method on a GridView's bound field, what is the simplest way of calling it so that on screen I see the shorten version of the message.
<!-- TODO: How to call .Shorten() extension method on the ItemDescription in markup: --!>
<asp:BoundField HeaderText="Items" DataField="ItemDescription"...>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将该列设为模板列:
并确保 ToShorten 采用对象,而不是字符串,因为
Eval
返回对象。*以上代码未经测试,但可以肯定非常接近。
另一种选择:
修改您的类并添加一个
ItemDescriptionShorten
属性,如下所示:现在绑定到该属性而不是
ItemDescription
Make that column a template column:
And make sure ToShorten takes an object, not a string since
Eval
returns object.*Above code not tested but pretty sure is very close.
Another alternative:
Modify your class and add a
ItemDescriptionShorten
property that would be like this:Now bind to that property instead of
ItemDescription
在 .aspx 文件的顶部,导入包含扩展方法的类所在的命名空间:
然后:
in the top of the .aspx file, import the namespace in which the class that contains your extension method is:
and then: