2010-03-15 7 views
1
protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    GridView1.Columns[0].ItemStyle.Width = 400; 

    <asp:GridView ID="GridView1" runat="server" 
     DataSourceID="ObjectDataSource1" 

ObjectDataSource1 retourne table de données, mais je ne peux pas y trouver une propriété largeur, donc je suppose que il y a l'option de côté GridView mais même sur les données liées il n'y a pas comme des colonnes ...Largeur de colonne dynamique

protected void GridView1_DataBound(object sender, EventArgs e) 
{ 
    if (GridView1.Columns.Count!=0) 
     GridView1.Columns[0].ItemStyle.Width = 800; 

question: comment définir la largeur de la colonne dans ma grille

asp:

<asp:Panel id="Panel1" runat="server" ScrollBars="Auto" style="width:990px; border-style: outset; border-width: 4px;"> 
    <asp:Label ID="ERROR" runat="server"></asp:Label> 
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
     SelectMethod="GetReport" TypeName="SQF.SQF"> 
     <SelectParameters> 
      <asp:Parameter DefaultValue="2010" Name="Param1" Type="String" /> 
      <asp:Parameter DefaultValue="1" Name="Param2" Type="Int32" /> 
      <asp:Parameter DefaultValue="0" Name="Group" Type="Int32" /> 
      <asp:Parameter DefaultValue="0" Name="DayOfMonth" Type="Int32" /> 
     </SelectParameters> 
    </asp:ObjectDataSource> 

    <asp:GridView ID="GridView1" runat="server" 
     DataSourceID="ObjectDataSource1" Width="591px" 
     CellPadding="4" ForeColor="#333333" 
     HorizontalAlign="Center" AllowPaging="True" PageSize="6" 
      onrowdatabound="GridView1_RowDataBound"> 
     <PagerSettings FirstPageText="&#1055;&#1077;&#1088;&#1074;&#1072;&#1103;" 
      LastPageText="&#1055;&#1086;&#1089;&#1083;&#1077;&#1076;&#1085;&#1103;&#1103;" 
      PageButtonCount="15" position="Bottom" /> 
       <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
       <PagerStyle CssClass="pagination" HorizontalAlign="Center" 
       VerticalAlign="Middle" 
      Font-Size="14pt" Wrap="True" BackColor="#284775" ForeColor="White"/> 
     <RowStyle BackColor="#F7F6F3" ForeColor="#333333" HorizontalAlign="Center" 
      VerticalAlign="Middle" /> 
     <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" 
      VerticalAlign="Middle" /> 
     <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" 
      HorizontalAlign="Center" VerticalAlign="Middle" /> 
     <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" 
      Font-Names="Arial" /> 
     <EditRowStyle BackColor="#999999" HorizontalAlign="Center" /> 
     <AlternatingRowStyle BackColor="White" ForeColor="#284775" 
      HorizontalAlign="Center" /> 
    </asp:GridView> 

css:

.wide { 
border:3px solid black; 
width:400px; 
} 
css-content.css (строка 778) 
from tr 
element.style { 
color:#333333; 
} 
from table#ctl00_ContentPlaceHolder1_GridView1 
element.style { 
border-collapse:collapse; 
color:#333333; 
} 
from div#ctl00_ContentPlaceHolder1_Panel1 
element.style { 
border-style:outset; 
} 
from body 
body { 
color:#666666; 
font-family:Verdana,Arial,Helvetica,sans-serif; 
font-size:0.7em; 
line-height:1.4em; 
} 
+0

S'il vous plaît énoncer votre question, je n'ai pas compris ce que vous demandez. – OverLex

Répondre

1

Si vous voulez toujours la même largeur, je le ferais avec CSS. Vous pouvez le faire comme ceci:

GridView1.Columns[0].ItemCssClass = "wide"; 

Et en CSS:

.wide { width: 400px; } 

Si vous définissez la largeur sur le style de l'élément, cet identifiant css répété dans le code HTML pour toutes les cellules de cette colonne, cette Au moins, c'est moins de balisage.

Si vous utilisez des colonnes alors la collection de colonnes réelles générées automatiquement est vide et vous devrez brancher à l'événement RowDataBound comme ceci:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    e.Row.Cells[0].CssClass = "wide"; 
} 

Dans votre balisage GridView ajouter OnRowDataBound="GridView1_RowDataBound"

+0

GridView1.Columns [0] .ItemCss ... // il n'y a pas de tel paramètre et même ici il n'y a pas de colonnes :( – Cynede

+0

@nCdy - Si vous générez dynamiquement des colonnes, il n'y aura pas de colonnes, et vous avez besoin pour lier à RowDataBound, je vais mettre à jour avec un exemple –

+0

qui fonctionnera lentement :(n'est-ce pas? ... ne fonctionne pas :( – Cynede

Questions connexes