gpt4 book ai didi

c# - 截断 RadGrid 列中的文本

转载 作者:太空宇宙 更新时间:2023-11-03 22:23:56 24 4
gpt4 key购买 nike

在 LINQ 上下文中使用 Telerik RadGrid*,使用 ASP.NET/C#,如何在列中显示时将文本截断到最大长度?最大,我的意思是如果原始字符串的长度短于指定的最大长度,则不会引发错误。

我在网上看到了很多这样的例子,但是在使用 LINQ 时,用于实现此目的的 Container.DataItem 似乎有所不同。有时我们将 DataItem 视为一种方法,有时则不是。示例通常使用 DataSet

这是找到的示例 ( source ):

<asp:TemplateField HeaderText="Description">
<ItemTemplate>
<%# ValidateString(Container.DataItem("Description")) %>
</ItemTemplate>
</asp:TemplateField>

和代码隐藏:

protected string ValidateString(object String)
{
if ((String.ToString().Length > 50))
{
return String.ToString().Substring(0, 50) + "...";
}
else
{
return String.ToString();
}
}

谢谢你的帮助。

(*) 或者普通的 GridView,应该是兼容的。

最佳答案

我会连接到 OnItemDataBound 事件并在您的代码后面执行此操作。将数据项转换为您的自定义对象并查询属性,如下所示(从内存中输入一些内容):

protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem dataBoundItem = e.Item as GridDataItem;
CustomObject o = e.Item.DataItem as CustomObject;

if(o.Description.Length > 50)
{
dataBoundItem["Description"].Text = o.Description.Substring(0, 47) + "..."
}
}
}

或者,如果您想坚持使用您正在使用的方法,请在您的 aspx 中尝试以下操作

<telerik:GridTemplateColumn>
<ItemTemplate>
<%# ValidateString(Eval("Description").ToString()) %>
</ItemTemplate>
</telerik:GridTemplateColumn>

关于c# - 截断 RadGrid 列中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2094510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com