#611 - TextBox multiriga con il DataGrid
Le BoundColumn del DataGrid purtroppo non supportano la possibilità di impostare la proprietà TextMode della TextBox creata in fase di editing su MultiLine, opzione comoda in moltissimi casi, ad esempio quando si deve modificare un testo abbastanza lungo.
Senza ricorrere ad una TemplateColumn, che richiede un cambiamento anche nella logica di recupero dei dati, è sufficiente intercettare l'evento OnItemDataBound del DataGrid, che si verifica in fase di associazione dei dati, per cambiare le proprietà della TextBox contenuta.
<SCRIPT language="C#" runat="server">
// inserire le routine di estrazione dati, vedi #388 o #469
private void ItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.EditItem) {
// recupero il Textbox della sesta colonna
TextBox t = ((TextBox) e.Item.Cells[5].Controls[0]);
// cambio la tipologia ed imposto righe e colonne
t.TextMode = TextBoxMode.MultiLine;
t.Rows = 5;
t.Columns = 20;
}
}
// selezioni la riga sul DataGrid
public void Edit(object sender, DataGridCommandEventArgs e)
{
myDataGrid.EditItemIndex = e.Item.ItemIndex;
bindData();
}
</SCRIPT>
<form runat="server">
<ASP:DataGrid id="myDataGrid" runat="server"
[code lang="c#"] onItemDataBound="ItemDataBound"
onEdit="Edit">
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Aggiorna" CancelText="Annulla" EditText="Modifica" />
</Columns>
</ASP:DataGrid>
</form>
Approfondimenti
- A volte ritornano... GridView vs Repeater vs ListView vs Custom
- #930 - Propagare un evento al controllo padre nei Custom Control
- #938 - Paginazione con il DataPager di ASP.NET 3.5
- 3-Tier, 3-Layer e MVC: ma sono la stessa cosa?
- Extension Method per semplificare la Reflection
- #927 - Un HttpModule per passare automaticamente da HTTP a HTTPS
- Realizzare applicazioni ASP.NET sicure - Seconda parte
- Future Web Conference e .NET 3.5
- #936 - Aggiungere una riga con il totale calcolato al GridView
- #944 - Inviare file di grandi dimensioni con un HttpHandler di ASP.NET
- #953 - Utilizzare le nuove funzionalità di URL Routing di ASP.NET 3.5 SP 1
- #950 - Il supporto al pulsante back del browser con ASP.NET AJAX 3.5 SP 1
Commenti
Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Stampa
Snippet
Download 


10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!