Может кто-нибудь объяснить это мне. Я пытаюсь установить размеры GridView.
int totalWidth = 550;<br>
int subWidth = totalWidth / _module.Values.Count;
с 3 модулями - 183, а с 2 - 275.
Позже в коде я делаю:
myGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;<br>
myGrid.HeaderStyle.Width = subWidth;
Теперь я бы предположил, что ширина столбцов будет равна 183px с 3 модулями или 275 с 2. Фактические размеры: 224 + 153 + 172 = 549. Текст заголовка столбца 1 будет длинным, но если я его принудительно заставлю быть 183px, почему он настаивает на том, чтобы быть 224? Текст в столбце 2 короткий, в столбце 3 средний. Для всех трех заголовков все еще достаточно места, чтобы их можно было немного сжать.
Просто чтобы прояснить - я также делаю:
myGrid.RowStyle.HorizontalAlign = HorizontalAlign.Center;<br>
myGrid.RowStyle.Width = subWidth;
Я вижу одинаковые неправильные размеры в Firefox и Chrome. Я не могу понять в своей глупой голове, как я могу установить ширину, и столбец выбирает другое значение, несмотря на мои намерения.
Метод, о котором идет речь:
private void CreateGridView ()
{
GridView myGrid = new GridView ();
int totalWidth = 550;
int subWidth = totalWidth / _module.Values.Count;
#region DataTable
DataTable dataTable = new DataTable();
string[] dataArray = new string[_module.Values.Count];
for (int i = 0; i < _module.Values.Count; i++)
{
dataArray[i] = _module.Values[i].Value.ToString("n0"); ;
}
for (int i = 0; i < _module.Values.Count; i++)
{
dataTable.Columns.Add(_module.Values[i].Text.ToString());
}
dataTable.Rows.Add(dataArray);
myGrid.DataSource = dataTable;
#endregion
myGrid.Width = totalWidth;
myGrid.GridLines = GridLines.None;
myGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
myGrid.HeaderStyle.Width = subWidth;
myGrid.RowStyle.HorizontalAlign = HorizontalAlign.Center;
myGrid.RowStyle.Width = subWidth;
myGrid.DataBind();
Controls.Add(myGrid);
}