答案 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)
答案 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();
}