如何使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