2010-03-15 2 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 возвращает таблицу данных, но я не могу найти свойство ширины, поэтому я предполагаю, что есть GridView варианта стороны, но и на данных связанно есть, как без столбцов ...Динамическая колонки

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

Вопрос: как установить ширину столбца в моей сетке

жерех:

<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

Пожалуйста, укажите свой вопрос, я не понял, о чем вы спрашиваете. – OverLex

ответ

1

Если вы хотите всегда одинаковую ширину, я хотел бы сделать это с помощью CSS. Вы можете сделать это следующим образом:

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

И в CSS:

.wide { width: 400px; } 

Если вы установите ширину на стиль элемента, что CSS идентификатор повторяется в HTML для каждой ячейки в этом столбце, это по крайней мере, это меньше разметки.

Если вы используете авто генерируемых столбцов, то фактическая коллекция столбцов пуста и вам нужно подключить к событию RowDataBound как это:

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

В вашем GridView разметке добавить OnRowDataBound="GridView1_RowDataBound"

+0

GridView1.Columns [0] .ItemCss ... // нет такого параметра, и даже здесь нет столбцов :( – Cynede

+0

@nCdy - Если вы динамически генерируете столбцы, столбцов не будет, и вам нужно для привязки к RowDataBound, я обновлю пример –

+0

, который будет работать медленно :(не так ли? ... не работает :( – Cynede