我正在使用网格视图来显示数据,但我有很多具有大名称的列。所以它包含更多的屏幕尺寸。
所以请帮我解决如何垂直获取标题文本,以便列不会获得更多屏幕,我可以在不滚动的情况下在同一页面中显示我的整个网格。
我正在使用visual studio 2005和vb.net
任何帮助将不胜感激。
答案 0 :(得分:2)
这会奏效。虽然我不得不说如果所有标题文本都垂直显示,它看起来很丑。
首先我们需要一个CSS类。
<style>
.VerticalHeaderText {
white-space: pre-wrap;
word-wrap: break-word;
width: 1px;
//line-height needs some tweaking for font size, type etc
line-height: 75%;
}
</style>
然后我们需要将头文本包装在具有类VerticalHeaderText
的容器中。为此,我们使用GridViews OnRowDataBound
事件。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Text = "<div class=\"VerticalHeaderText\">" + e.Row.Cells[i].Text + "</div>";
}
}
}
在VB中
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If (e.Row.RowType = DataControlRowType.Header) Then
Dim i As Integer = 0
Do While (i < e.Row.Cells.Count)
e.Row.Cells(i).Text = ("<div class=""VerticalHeaderText"">" _
+ (e.Row.Cells(i).Text + "</div>"))
i = (i + 1)
Loop
End If
End Sub
答案 1 :(得分:0)
/*Use the css on page tittle*/
<style>
.verticaltext
{
writing-mode: tb-rl;
filter: flipv fliph;
}
</style>
/*Call this code on gridview_Rowdatabound*/
GridViewRow header = gv.HeaderRow;
header.Cells[1].CssClass = "verticaltext";