Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou tentando dimensionar as colunas de um GridView mas não estou conseguindo.
Eu tenho dois grids. Cada um dentro de uma "div" com o estilo de overflow configurado como "scroll" para que o grid não atrapalhe o layout da página.
No primeiro grid, defini a largura para 733 pixels. Dessa forma, não é necessário rolar a div para visualizar os dados.
Já o segundo grid (logo abaixo), possui uma coluna a mais que primeiro. Eu precisava fazer com que o tamanho das três primeiras colunas ficassem exatamente iguais aos do primeiro grid, de forma que a quarta coluna ficasse escondida, sendo necessário rolar a div para visualizar os dados.
Essa tarefa de colocar o tamanho das colunas é que está complicada. Removi a largura definida desse segundo grid no Aspx e tentei especificar a largura das colunas com "<ItemStyle width="100px" />", com "<HeaderStyle width="100px" />", com uma combinação dos dois para cada coluna, mas no final não funciona.
As três primeiras colunas não estão "empurrando" a quarta coluna para fora da visualização da div. Já tentei até mesmo especificar uma largura muito grande para o grid, mas dessa forma não consigo fazer as colunas ficarem do mesmo tamanho do grid que está acima.
O código da página aspx é a seguinte:
<div style="width:750px;height:201px;overflow:scroll;" >
<asp:GridView ID="GridView1" runat="server" Width="733px"
BackColor="White" BorderColor="#999999" BorderStyle="Solid"
BorderWidth="1px" CellPadding="3" ForeColor="Black"
GridLines="Vertical" AutoGenerateColumns="False"
AllowPaging="True" AllowSorting="True"
DataKeyNames="Id" PageSize="5" >
<FooterStyle BackColor="#8F88B1" />
<PagerStyle BackColor="#999999" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#52428B" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#8F88B1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#EEEEEE" />
<PagerSettings Mode="NumericFirstLast" />
<Columns>
<asp:CommandField ButtonType="Button" ShowSelectButton="True" Visible="False" />
<asp:BoundField DataField="Id" HeaderText="Id" Visible="False" />
<asp:BoundField HeaderText="Field1" DataField="Field1" >
<ItemStyle Width="40%" />
</asp:BoundField>
<asp:BoundField HeaderText="Field2" DataField="Field2" >
<ItemStyle Width="40%" />
</asp:BoundField>
<asp:BoundField HeaderText="Field3" DataField="Field3">
<ItemStyle Width="20%" />
</asp:BoundField>
</Columns>
</asp:GridView>
</div>
<br /><br />
<div style="width:750px;height:201px;overflow:scroll;" >
<asp:GridView ID="GridView2" runat="server"
BackColor="White" BorderColor="#999999" BorderStyle="Solid"
BorderWidth="1px" CellPadding="3" ForeColor="Black"
GridLines="Vertical" AutoGenerateColumns="False"
AllowPaging="True" AllowSorting="True"
DataKeyNames="Id" PageSize="5" >
<FooterStyle BackColor="#8F88B1" />
<PagerStyle BackColor="#999999" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#52428B" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#8F88B1" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#EEEEEE" />
<PagerSettings Mode="NumericFirstLast" />
<Columns>
<asp:CommandField ButtonType="Button" ShowSelectButton="True" Visible="False" />
<asp:BoundField DataField="Id" HeaderText="Id" Visible="False" />
<asp:BoundField HeaderText="Field1" DataField="Field1" >
<ItemStyle Width="287px" />
</asp:BoundField>
<asp:BoundField HeaderText="Field2" DataField="Field2" >
<ItemStyle Width="287px" />
</asp:BoundField>
<asp:BoundField HeaderText="Field3" DataField="Field3">
<ItemStyle Width="150px" />
</asp:BoundField>
<asp:BoundField HeaderText="Field4" DataField="Field4">
<ItemStyle Width="120px" />
</asp:BoundField>
</Columns>
</asp:GridView>
</div>
Fiz também o seguinte código para carregar dados aleatórios na grid:
public class MyNewClass
{
private int _id;
private string _field1;
private string _field2;
private string _field3;
private string _field4;
public int Id { get { return _id; } set { _id = value; } }
public string Field1 { get { return _field1; } set { _field1 = value; } }
public string Field2 { get { return _field2; } set { _field2 = value; } }
public string Field3 { get { return _field3; } set { _field3 = value; } }
public string Field4 { get { return _field4; } set { _field4 = value; } }
} if (!IsPostBack)
{
List<MyNewClass> list = new List<MyNewClass>();
MyNewClass item = new MyNewClass();
item.Id = 1;
item.Field1 = "Value1";
item.Field2 = "Value2";
item.Field3 = "Value3";
item.Field4 = "Value4";
list.Add(item);
list.Add(item);
list.Add(item);
list.Add(item);
list.Add(item);
list.Add(item);
GridView1.DataSource = list;
GridView2.DataSource = list;
GridView1.DataBind();
GridView2.DataBind();
}
}
Agradeço por qualquer informação que possam me passar. Já estou há muito tempo tentando configurar essas grids.
Obrigado.
Carregando comentários...