Есть ли способ вертикально отобразить headerText представления сетки?
http://img371.imageshack.us/img371/4813/testyk6.jpg
Надеюсь, ссылка выше работает
Спасибо





Я считаю, что вам придется использовать изображения. Либо создается во время разработки, либо с помощью HttpHandler для генерации изображений во время выполнения, если они должны быть динамическими. Сделайте так, чтобы все ваши поля использовали TemplateFields, и поместите изображение в HeaderTemplate. Довольно утомительно, но я могу думать только так. Возможно, с этим справятся некоторые сторонние элементы управления сеткой.
Silverlight может это сделать (я уверен, что и Flash). CSS3 будет его поддерживать. Но графический текст - это то, что нужно прямо сейчас.
Вы можете использовать любой из нескольких методов скрытия текста в CSS, чтобы показать текст для доступных браузеров, но при этом отображать графику (с текстом, расположенным вертикально) для зрячих пользователей.
Стю Николлс имеет интересную технику HTML / CSS, если немного подробный HTML. Однако он не выполняет требуемого поворота слов. Просто выкидываю другой вариант.
Если вы не возражаете против решения только для IE, вы можете использовать некоторые из CSS-фильтров, которые поддерживает IE. Что-то вроде этого:
<div style = "width:100%; filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);">
This text is rotated 90 degrees.
</div>
Я сделал это IE, используя следующий CSS, хотя он может быть ограничен браузером, версией и т. д.
режим письма: tb-rl; фильтр: flipv fliph
В 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);
Но это еще не мейнстрим.
Я пытался сделать это с графическим текстом, но у меня есть несколько проблем.
Я использовал команда break (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();
}
Добро пожаловать в stackoverflow! Кратко опишите приведенный выше код, чтобы повысить точность публикации :)
Я использовал это в системах Интранет, и мне всегда казалось, что это работает.