Il DataGrid è uno dei Data Controls più utili che ASP.NET metta a disposizione.
Supporta di default paginazione, ordinamento e modalità di modifica dei dati mostrati.
Tuttavia non ha una funzionalità predefinita per posizionare automaticamente il browser, quando si preme il pulsante di modifica, sulla riga selezionata, rendendo quindi poco utile lo scrolling manuale necessario.
Si può sì utilizzare SmartNavigation, ma è necessario Internet Explorer e poi l'implementazione non è delle migliori.
Ecco quindi che un po' di Javascript, inserito al punto giusto, può aiutare.
La sub DoItemEdit è associata all'evento di pressione del tasto modifica nel DataGrid, ovvero ne rappresenta il valore della proprietà OnEditCommand.
<SCRIPT Runat="Server">
Sub DoItemEdit(obj As Object, objArgs As DataGridCommandEventArgs)
' imposta l'item selezionato nel datagrid
MyDataGrid.EditItemIndex = objArgs.Item.ItemIndex
' definisco il codice client-side per andare al record selezionato
Dim bookmarkScript as String
bookmarkScript += "<s" & "cript language=""JavaScript"">"
bookmarkScript += "location.href=""#bookmark"
bookmarkScript += """</s" & "cript>"
' aggiungo l'evento alla pagina
RegisterClientScriptBlock("Bookmark", bookmarkScript)
' aggiorno la griglia
BindDataGrid()
End Sub
</SCRIPT>
A questo punto non ci resta che aggiungere nella riga selezionata in modifica il bookmark.
Ci sono diversi modi per inserire il bookmark nella pagina, ma sicuramente il più banale è quello di sfruttare la proprietà UpdateText di una EditCommandColumn, che viene visualizzata solo sulla riga attiva in modifica.
Dunque, bisognerà strutturare la DataGrid grossomodo così:
<ASP:DataGrid id="MyDataGrid" runat="server" ... >
<Columns>
<ASP:EditCommandColumn
HeaderText="Operazioni"
EditText="Modifica"
UpdateText="Aggiorna <a name=""bookmark""/>"
CancelText="Annulla"
/>
</Columns>
<ASP:DataGrid>
- FWC il giorno dopo
- Piccoli grandi VWD Express 2008 crescono
- Nuova build per ASP.NET MVC: Preview 5
- #943 - Leggere feed RSS e Atom con il .NET Framework 3.5
- ASP.NET Ajax Roadmap
- #955 - Realizzare un metodo FindControl generico utilizzando gli Extension Method
- #923 - Caricare dinamicamente un HttpModule
- Routing e dynamic data control di ASP.NET 3.5 SP1
- Disponibile la ASP.NET 3.5 Extensions CTP Preview
- #13 - Invocare il PostBack di un controllo ASP.NET da Silverlight
- #942 - Creare feed RSS e Atom con il .NET Framework 3.5
- #947 - La direttiva OutputCache con ASP.NET 2.0 e 3.5
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
Download 


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