come faccio ad evitare che in modalità edit mi si deformi il datagrid??
insomma vorrei impostare la larghezza delle colonne in modo che sia fissa anche in modalità edit
ps chi sa questa è un mito
come faccio ad evitare che in modalità edit mi si deformi il datagrid??
insomma vorrei impostare la larghezza delle colonne in modo che sia fissa anche in modalità edit
ps chi sa questa è un mito
PAZZIA PAZZIA
PORTAMI VIA!
Scusa ma oggi non sto molto in forma, se mi mandi del codice di esempio posso darti una mano.
Prova a specificare la larghezza della colonna nelle sue proprietà.
Ad esempio del tipo:
<EditItemTemplate>
<asp:TextBox id="txtStartDate" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.StartDate", "{0:yyyy-MM-dd}") %>' Columns="10"/>
</EditItemTemplate>
Il punto è che quando passi in Edit Mode la tua griglia utilizza l'EditItemStyle invece del classico ItemStyle che viene visualizzato in fase di esecuzione.
Se non crei esplicitamente un EditItemStyle, VS ne crea uno di default che spesso come hai notato tu allarga le colonne della tua griglia per ospitare le TextBox di editazione.
Quindi, la soluzione al tuo problema è quello di specificare correttamente nella pagina aspx tutti i dettagli dello style di editazione.
Trovi nell'help in linea tutti i dettagli.
Ciupaz potresti spiegarmi meglio come fare, sono 2 ore che ci provo senza risultati....
Ecco il mio DataGrid:
Le boundcolumn 2 e 3 sono quelle in cui devo bloccare la larghezza.codice:<ASP:Datagrid ID="DtgDatiUtente" Runat="server" Width="98%" AutoGenerateColumns="False" OnEditCommand="DtgDatiUtente_Edit" OnCancelCommand="DtgDatiUtente_Cancel" OnUpDateCommand="DtgDatiUtente_Update" BorderColor="black" BorderWidth="1" CellPadding="3" HeaderStyle-BackColor="#3399CC" HeaderStyle-ForeColor="#FFFFFF" > <EditItemStyle BackColor="#CCCCCC"> </EditItemStyle> <Columns> <ASP:BoundColumn HeaderText="Username" ReadOnly="True" DataField="Username" ItemStyle-Width="25%"/> <ASP:BoundColumn HeaderText="Password" DataField="Passwordx" ItemStyle-Width="25%"/> <ASP:BoundColumn HeaderText="Email" DataField="Email" ItemStyle-Width="25%"/> <ASP:EditCommandColumn EditText="Cambia" CancelText="Annulla" UpdateText="Salva" HeaderText="Modifica" ItemStyle-Width="25%" ItemStyle-ForeColor="#FF3300"/> </Columns> </ASP:DataGrid>
Hey hey, my my Rock and roll can never die!
ehi! avete rispolverato un mio vecchio messaggio!!!
Dunque zampa dei dichiarare le colonne non come 'BoundColumn' ma come 'TemplateColumn'.
Un esempio:
<Columns>
<asp:TemplateColumn HeaderText="Descrizione">
<ItemTemplate>
<asp:Label id="Label1" Text='<%# DataBinder.Eval(Container.DataItem,"descrizione") %>' Width="400px" Height="10px" runat="server">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem,"descrizione") %>' id="descrizione" Width="400px" Runat="server">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
PAZZIA PAZZIA
PORTAMI VIA!
UFF...
Grazie![]()
Hey hey, my my Rock and roll can never die!