在Grid View ASP .NET中垂直显示标题文本

时间:2008-10-23 14:50:21

标签: c# asp.net

有没有办法垂直显示网格视图的headerText?

http://img371.imageshack.us/img371/4813/testyk6.jpg

我希望以上链接有效

由于

8 个答案:

答案 0 :(得分:2)

我相信你必须使用图像。可以在设计时创建,也可以使用HttpHandler在运行时生成图像,如果它们需要是动态的。使所有字段都使用TemplateFields并将图像放在HeaderTemplate中。有点乏味,但这是我能想到的唯一方式。也许某些第三方网格控件可以处理这个问题。

答案 1 :(得分:2)

Silverlight可以做到这一点(就像Flash一样,我敢肯定)。 CSS3将支持它。但图形文字是现在的方式。

您可以在CSS中使用任何一种文本隐藏技术来显示可访问浏览器的文本,同时为有视力的用户显示图形(文本垂直排列)。

答案 2 :(得分:2)

我使用以下CSS完成了IE,虽然它可能仅限于浏览器,版本等......

写作模式:tb-rl; 过滤器:flipv fliph

答案 3 :(得分:1)

Stu Nicholls有一个有趣的HTML / CSS技术,如果有点HTML详细。但是,它不会执行您正在寻找的旋转一词。只是抛出另一种选择。

答案 4 :(得分:1)

如果你不介意只有IE的解决方案,你可以使用IE支持的一些css过滤器。像这样:

<div style="width:100%; filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);">
    This text is rotated 90 degrees.
</div>

答案 5 :(得分:1)

在IE7 +中你可以使用DX变换:

writing-mode: tb-rl;
filter: flipv fliph;

在较旧的IE中(对于仍然坚持使用它的可怜的灵魂):

filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);

在Safari / Chrome(基于webkit的任何内容)中,您可以使用转换:

-webkit-transform: rotate(270deg);

最新的FX版本具有相同的功能:

-moz-transform: rotate(270deg);

但那还不是主流。

我一直试图用图形文字来做这件事,但有一个few problems

答案 6 :(得分:0)

我用了一个 每个字母之间的break(br)命令

答案 7 :(得分:0)

/*Do this in a loop for each header cell so Cells[0] to cells[however many] and however long the string is so use length properties to get the actual length of the text string */ 

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
         StringBuilder vtxt = new StringBuilder();
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(0,1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(1, 1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(2, 1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(3, 1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(4, 1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(5, 1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(6, 1));
            vtxt.Append("<br />");
            vtxt.Append(GridView1.HeaderRow.Cells[0].Text.ToString().Substring(7, 1));

            GridView1.HeaderRow.Cells[2].Text = vtxt.ToString();
        }