2009-02-13 4 views
0

Может кто-нибудь, пожалуйста, помогите мне с моей проблемой?Ширина столбца GridView Изменение

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

string select = "SELECT * FROM TABLE" 

OracleCommand cmd = new OracleCommand(select, connectionstring); 
cmd.Connection.Open(); 

GridView.DataSource = cmd.ExecuteReader(); 
GridView.DataBind(); 

Это выводит таблицу в виде сетки. Есть ли способ изменить свойства gridview в браузере? возможно, какой-то javascript?

Спасибо заранее,

ответ

1

Вы можете задать эти атрибуты через стили в столбцах самого GridView. Вы можете установить для атрибута AutoGenerateColumns значение false и указать нужные столбцы и указать размеры в каждом столбце. Кроме того, следуя хорошей практике веб-дизайна, вы можете использовать CSS для каждого столбца. Если вы хотите изменить его на лету, я бы предложил использовать ItemTemplates и добавить компоненты, которые вы можете изменить в поле.

Ex:

<asp:GridView runat="server" AutoGenerateColumns="false" ID="Grid" DataSourceID='MyObjectDataSource' CssClass="grid_table"> 
       <AlternatingRowStyle CssClass="even" /> 
       <Columns> 
        <asp:TemplateField> 
         <HeaderTemplate> 
          <div id="NameColumn" runat="server">Name Center</div> 
         </HeaderTemplate> 
         <ItemTemplate> 
          <%# Eval("LastName") %>, <%# Eval("FirstName") %> 
         </ItemTemplate> 
        </asp:TemplateField> 
        <asp:TemplateField> 
         <HeaderTemplate> 
          <div id="AgeColumn" runat="server">Age</div> 
         </HeaderTemplate> 
         <ItemTemplate> 
          <%# Eval("Age") %> 
         </ItemTemplate> 
        </asp:TemplateField> 
       <EmptyDataTemplate>There are no Users</EmptyDataTemplate> 
      </asp:GridView> 

С помощью этого кода вы можете получить доступ к ширине столбцов:

NameColumn.Width = 100; 
AgeColumn.Width = 2; 

Однако, есть много способов, вы можете сделать это, в том числе получения колонки непосредственно:

Grid.Columns[0].HeaderStyle.Width = 100; 
Grid.Columns[0].ItemStyle.Width = 100; 
Grid.Columns[1].HeaderStyle.Width = 2; 
Grid.Columns[1].ItemStyle.Width = 2; 

Или снова с использованием css:

Grid.Columns[0].HeaderStyle.CssClass = "name_column_header"; 
Grid.Columns[0].ItemStyle.CssClass = "name_column_data"; 
Grid.Columns[1].HeaderStyle.CssClass = "age_column_header"; 
Grid.Columns[1].ItemStyle.Width = "age_column_data"; 

В любом случае, ваша устрица в мире, это всего лишь некоторые отправные точки.

+0

Благодарим вас за ответ. Я не знаю, может ли это мне помочь ... Что вы здесь указали, меняет ширину перед компиляцией. Как насчет того, хотите ли вы менять ширину при ее запуске? – 2009-02-13 18:18:06

0

Используйте этот код в строке DataBound случае GridView

e.Row.Cells [8] .width = новый блок ("800px");

убедитесь, что размер сетки должен быть больше размера столбца.

Смежные вопросы