如何垂直获取GridView标题文本

时间:2016-11-04 05:05:14

标签: asp.net vb.net gridview

我正在使用网格视图来显示数据,但我有很多具有大名称的列。所以它包含更多的屏幕尺寸。

所以请帮我解决如何垂直获取标题文本,以便列不会获得更多屏幕,我可以在不滚动的情况下在同一页面中显示我的整个网格。

我正在使用visual studio 2005和vb.net

任何帮助将不胜感激。

2 个答案:

答案 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";