2009-02-13 8 views
0

Quelqu'un peut-il m'aider s'il vous plaît avec mon problème?Largeur de colonne GridView Modification

J'ai un gridview dans une page Web, dont la source de données est une base de données Oracle. Je voudrais savoir s'il est possible de changer la largeur des colonnes pendant que vous êtes sur la page web?

string select = "SELECT * FROM TABLE" 

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

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

Cette sortie le tableau dans le gridview. Existe-t-il un moyen de modifier les propriétés gridview dans le navigateur? peut-être un peu de javascript?

Nous vous remercions à l'avance,

Répondre

1

Vous pouvez spécifier ces attributs à travers les styles dans les colonnes du gridview lui-même. Vous pouvez définir l'attribut AutoGenerateColumns sur false, spécifier les colonnes souhaitées et spécifier les tailles dans chaque colonne. De plus, en suivant de bonnes pratiques de conception web, vous pouvez utiliser css pour styliser chaque colonne. Si vous souhaitez le modifier à la volée, je suggère d'utiliser ItemTemplates et d'ajouter des composants que vous pouvez modifier dans le champ.

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> 

Avec ce code, vous pouvez accéder à la largeur des colonnes:

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

Cependant, il y a plusieurs façons que vous pouvez accomplir cette tâche, y compris obtenir les colonnes directement:

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

Ou encore en utilisant 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"; 

De toute façon, le monde est votre huître, ce ne sont que quelques points de départ.

+0

Merci pour la réponse. Je ne sais pas si ça peut m'aider si ... Ce que vous avez donné ici change la largeur AVANT la compilation. Qu'en est-il si vous voulez changer de largeur pendant son fonctionnement? –

0

Utiliser ce code dans la rangée événement databound du gridview

e.Row.Cells [8] = .Width nouvelle unité ("800px"); Veuillez vérifier que la taille de votre grille doit être supérieure à la taille de la colonne.

Questions connexes