如何在 BoundField 元素中的 DataField 上调用字符串扩展方法?

发布于 2024-12-11 09:09:08 字数 323 浏览 0 评论 0原文

想象一下,我在字符串类型上引入了一个名为 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时光磨忆 2024-12-18 09:09:08

将该列设为模板列:

<itemtemplate>
<asp:label id="lblItemDesc" runat="server" Text='<%=string.Format(Eval("ItemDescription").ToShorten()))%>' />
</itemtemplate>

并确保 ToShorten 采用对象,而不是字符串,因为 Eval 返回对象。

*以上代码未经测试,但可以肯定非常接近。

另一种选择:

修改您的类并添加一个 ItemDescriptionShorten 属性,如下所示:

public string ItemStringDescriptionShorten { get {return ItemDescription.ToShortern();}}

现在绑定到该属性而不是 ItemDescription

Make that column a template column:

<itemtemplate>
<asp:label id="lblItemDesc" runat="server" Text='<%=string.Format(Eval("ItemDescription").ToShorten()))%>' />
</itemtemplate>

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:

public string ItemStringDescriptionShorten { get {return ItemDescription.ToShortern();}}

Now bind to that property instead of ItemDescription

荒路情人 2024-12-18 09:09:08

在 .aspx 文件的顶部,导入包含扩展方法的类所在的命名空间:

<%@ Import Namespace="your namespace" %>

然后:

<asp:TemplateField HeaderText="Items">
                    <ItemTemplate>
                        <%# Convert.ToString(Eval("ItemDescription")).Shorten() %>
                    </ItemTemplate>
                </asp:TemplateField>

in the top of the .aspx file, import the namespace in which the class that contains your extension method is:

<%@ Import Namespace="your namespace" %>

and then:

<asp:TemplateField HeaderText="Items">
                    <ItemTemplate>
                        <%# Convert.ToString(Eval("ItemDescription")).Shorten() %>
                    </ItemTemplate>
                </asp:TemplateField>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文