在网格视图中垂直显示标题文本 ASP .NET

本文关键字:标题 文本 ASP NET 显示 垂直 网格 视图 | 更新日期: 2023-09-27 17:47:22

有没有办法垂直显示网格视图的标题文本?

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

我希望上面的链接有效

谢谢

在网格视图中垂直显示标题文本 ASP .NET

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

Silverlight可以做到这一点(我敢肯定,Flash也可以)。CSS3 将支持它。但图形文本是现在要走的路。

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

我已经使用以下 CSS 完成了 IE,尽管它可能仅限于浏览器、版本等......

写入模式:TB-RL;过滤器:翻转

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

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

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

在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);

但这还不是主流。

我一直在尝试用图形文本来做到这一点,但遇到了一些问题。

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

/*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();
        }