Столбцы сетки не устанавливаются в ширину, которую я ввожу - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть два вида сетки, один из которых отображается под другим. Оба вида сетки одинаковы, единственное отличие от второго вида сетки в том, что я не показываю заголовок столбца. Я попытался установить одинаковые значения ширины в обоих видах сетки, но столбцы не совпадают.

Я попытался установить ширину на поле ограничения:

<asp:BoundField DataField="Code" HeaderText="A/C" SortExpression="Code" ItemStyle-Width ="120px"></asp:BoundField>

Я пытался установка ширины столбца:

gridview.Columns[0].ItemStyle.Width = 120;

Я попытался установить ширину ячеек:

foreach (TableRow row in gridview.Controls[0].Controls)
{
    row.Cells[0].Width = 120;
}

Ничего из вышеперечисленного не сработало. Вторая ширина сетки (последняя строка на изображении) не отображается так же, как первая сетка enter image description here

Первая сетка:

<asp:GridView runat="server" 
                            id="gvJobsPerMonth" 
                            CssClass="tblResults" 
                            OnItemDataBound="gvJobsPerMonth_OnItemDataBound" 
                            AllowSorting="true" 
                            OnSortCommand="gvJobsPerMonth_Sort" 
                            DataKeyField="ID" 
                            AutoGenerateColumns="false" >
                        <HeaderStyle CssClass="tblResultsHeader" />
                        <AlternatingRowStyle BackColor="#EEEEEE" />

Вторая сетка:

    <asp:GridView runat="server" 
                                    id="gvJobsPerMonthTotals" 
                                    CssClass="tblResults"
OnItemDataBound="gvJobsPerMonthTotals_OnItemDataBound" 
                                    AllowSorting="true" 
                                    OnSortCommand="gvJobsPerMonthTotals_Sort" 
                                    DataKeyField="ID" 
                                    AutoGenerateColumns="false"
                                    ShowHeader="false" >
                                <HeaderStyle CssClass="tblResultsHeader" />
                                <AlternatingRowStyle BackColor="#EEEEEE" />

Обе сетки используют одинаковые CSS классы. Единственное отличие - ShowHeader = "false" во второй сетке. Но даже если установить значение true, столбцы по-прежнему будут иметь разную ширину

Ответы [ 2 ]

2 голосов
/ 13 февраля 2020

Попробуйте этот код для второго GridView:

<RowStyle Width="120px"/>

Вместо 120px используйте нужный пиксель сразу после закрытия столбца </Columns>, например:

    </Columns>
    <RowStyle Width="120px"/>
</asp:GridView>
0 голосов
/ 16 февраля 2020

Ширина GridView устанавливается с помощью свойства ItemStyle Width.

<asp:BoundField DataField="language" HeaderText="language">
  <ItemStyle Width="500px" />
</asp:BoundField>
...