2024年终活动

DevExpress控件使用交流,DevExpress中国社区Dev联系电话 联系电话:023-68661681

DevExpress ASPxGridView的单元格如何换行或省略部分文本

来源:本站   发布时间:2012-03-01   浏览:5381次

如何使DevExpress ASPxGridView的单元格换行或省略部分文本?

要实现该功能,需自定义指定列的数据模板,设置其DataItemTemplate属性。这里有三种不同的在单元格中显示长文本的方式:

1.换行.文本内容根据列的宽度自动换行. 单元格的高度自动调整。这是ASPxGridView中默认的文本显示样式.如果文本中包含换行符(\r\n),并且希望其换行显示,您需要使用Memogrid column ,而不是Text.

2.省略.单元格文本必须放在一个DIV里面才可达到省略的效果,要实现该功能,需定义一个 DataItem 模板。DIV的text-overflow 样式需设置为"clip".

3. 带省略号的截取. 与上一种方法相同:需定义一个带有DIVdata item 模板. DIV的 text-overflow 样式设置为 "ellipsis".请注意text-overflow样式在IE里面支持,但在Firefoxignores下会被忽略.

这种情况下,如果要阻止文本换行,最简单的方法是设置white-space 属性为nowrap.另外,要使列宽固定,需将SettingsBehavior.ColumnResizeMode属性设置为Control或NextColumn.

关键代码:

public classMyDivTemplate : ITemplate{

        void ITemplate.InstantiateIn(Controlcontainer) {

           GridViewDataItemTemplateContainergridContainer = (GridViewDataItemTemplateContainer)container;

            HtmlGenericControldiv = new HtmlGenericControl();

            div.TagName = "div";

            div.Style["text-overflow"]= "ellipsis";

            div.Style["color"]= "red";

            div.Style["fond-weight"]= "bold";

            div.Style["width"]= "50px";

            div.Style["overflow"]= "hidden";

            div.Style["white-space"]= "nowrap";

            div.InnerText =gridContainer.Grid.GetRowValues(gridContainer.ItemIndex, "Product").ToString();

            container.Controls.Add(div);

        }

}

点击下载示例

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [https://www.devexpresscn.com/]
本文地址:https://www.devexpresscn.com/post/158.html
扫码咨询
电话咨询
023-68661681
返回
顶部