2009-05-26 15 views
5

Ho provato a modificare la proprietà Wrap RowStyle e ogni proprietà di Wrap nella griglia. Come posso interrompere il ritorno a capo di parole in una Gridview indipendentemente dalla dimensione della lunghezza del testo della riga?Telegramma con riga di griglia

+0

Cosa stai cercando di realizzare? Vuoi che la colonna si espanda con la lunghezza del testo o vuoi che il testo venga semplicemente troncato in base alla larghezza della colonna? – CodeLikeBeaker

+0

Sì, vorrei che la colonna si espandesse. Credo di essere abituato a scrivere html in asp classic. – Eric

risposta

9

Non è RowStyle. Devi impostare le impostazioni di avvolgimento del singolo oggetto sotto le colonne.

<asp:GridView ID="GridView1" runat="server"> 
    <Columns> 
     <asp:BoundField> 
     <ItemStyle Wrap="False" /> 
     </asp:BoundField> 
     <asp:BoundField> 
     <ItemStyle Wrap="False" /> 
     </asp:BoundField> 
    </Columns> 
</asp:GridView> 

Questo deve essere fatto per ogni singola colonna. Puoi però impostare un metodo nel code-behind per farlo per te.

+1

Questo metodo ha funzionato per me in ASP.NET 4, IE 8. Credo che abbia aggiunto noWrap = "noWrap" agli elementi td. noWrap è apparentemente deprecato e aggiungere il seguente stile agli elementi di td sarebbe meglio: style = "white-space: nowrap". – Mike

+1

@Mike: sembra la velocità di Microsoft. In un altro metodo compatibile con più browser sarebbe necessario aggiungere lo stile ''. –

1

Jason scrive in this blog post:

stavo affrontando gli stessi problemi con il GridView durante il caricamento di testo lungo dal database. Ho provato il metodo DIV per ottenere con lo stile CSS per impedire alla tabella di espandersi completamente a destra. Ho avuto modo di lavorare ora con elipsis che mostra se il testo è troppo lungo. Tuttavia, ciò significa che non riesco a visualizzare l'intero testo nel gridview che può fuorviare gli utenti.

Così ho aggiunto un altro stile chiamato "word-break: break-all" per rompere il testo in blocchi che si adattano correttamente nella tabella e ottenuto i risultati che volevo. Di seguito è parti al mio codice:

<style type="text/css"> 
    .DisplayDesc { width:500px; word-break: break-all; } 
    .DisplayDiv { width:500px; OVERFLOW:hidden; TEXT-OVERFLOW:ellipsis;} 
</style> 

<asp:TemplateField HeaderText="Log Description"> 
    <ItemStyle Font-Names="Tahoma" Font-Size="X-Small" 
       HorizontalAlign="Left" Wrap="True" /> 
    <ItemTemplate> 
     <div class="DisplayDiv"> 
      <asp:Label CssClass="DisplayDesc" ID="Label1" runat="server" 
         Text='<%# Bind("TransText") %>'></asp:Label> 
     </div> 
    </ItemTemplate> 
</asp:TemplateField> 
0

Basta impostare nowrap in una classe CSS, e applicare tale classe per estendersi tag, e mettere la vostra etichetta dentro quel tag span,

span class = "yourclassname" il tag asp spilla

0

questo è ciò che ha funzionato per me

<asp:GridView ID="SomeGridView" CssClass="gridtext" > 

.gridtext 
{ 
    white-space: nowrap; 
} 

.gridtext table 
{ 
    white-space: nowrap; 
} 
.gridtext tr 
{ 
    white-space: nowrap; 
} 
.gridtext td 
{ 
    white-space: nowrap; 
} 

.gridtext th 
{ 
    white-space: nowrap; 
} 
Problemi correlati