Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Record da una DataGrid
venerdì 11 febbraio 2005 - 16.00
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
secks
Profilo
| Senior Member
442
messaggi | Data Invio:
ven 11 feb 2005 - 16:00
Sto usando VB.NET x windows.
Ho una datagrid alimentata da una tabella (DataGrid1.DataSource = miaDataTable ).
Vengono visualizzati tutti i dati regolarmente.
Clicco sul titolo di una colonna e viene modificato l'ordinamento.
Doppio click sulla riga x selezionare.
Con il seguente comando:
Dim y As DataRow = CType(DataGrid1.DataSource, DataTable).Rows(DataGrid1.CurrentCell.RowNumber)
credo di prendere la riga selezionata, invece mi da un'altro record, penso della posizione originale.
Come posso avere il record scelto?
Ciao a tutti e grazie.
Paolo.
19018
Profilo
| Expert
502
messaggi | Data Invio:
dom 13 feb 2005 - 14:25
Potresti usare questa riga di codice da usare su uno degli eventi del datagrid (come updatecommand,DeleteCommand,etc...) :
string key = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
ti restituisce sotto forma si stringa il campo chiave della riga selezionata,così puoi operare su quella specifica riga.
ciao!
secks
Profilo
| Senior Member
442
messaggi | Data Invio:
mar 15 feb 2005 - 12:25
Mi sembra una buona soluzione, ma in questo caso sto utilizzando sto utilizzando VB.NET x windows e la suddetta proprietà non c'è.
Grazie comunque.
Ciao, Paolo.
19018
Profilo
| Expert
502
messaggi | Data Invio:
mar 15 feb 2005 - 12:29
Ciao!Lo stesso codice lo puoi usare anche con vb.net devi solo modificare un pò la sintassi, se non ricordo male basta cmabiare le [ ] con ( ) cmq prova perchè lo puoi fare anche vb.net!ciao!
secks
Profilo
| Senior Member
442
messaggi | Data Invio:
mar 15 feb 2005 - 16:04
L'istruzione
string key = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
x quanto ho visto e provato funziona su progetto Web.
La proprietà DataKeys la trovo attivata solo x la DataGrid che gira su progetti Web e non x quelli su Windows.
La mia necessità è su progetto Windows.
Le soluzioni che ho trovato con le seguenti istruzioni:
1 Dim y As DataRow = CType(DataGrid1.DataSource, DataTable).Rows(DataGrid1.CurrentCell.RowNumber)
che però se clicco in testata di una colonna e cambio ordinamento non pesco il record scelto
2 pippo = DataGrid1.Item(DataGrid1.CurrentRowIndex, 0)
che però sarebbe opportuno avere un campo con chiave univoco su cui puntare presente in una determinata cella altrimenti,
come ho fatto, è necessario prendere le varie celle x determinare la chiave.
X DataGrid su progetto windows non ho trovato altre soluzioni.
Ciao Paolo.
19018
Profilo
| Expert
502
messaggi | Data Invio:
mer 16 feb 2005 - 00:14
Ciao!Ho provato a fare una prova e ci sono riuscito...non è stato facile sinceramente ma con un pò di applicazione sono arrivato a questo codice che ha risolto il problema :
VERSIONE C#
System.Data.DataRow dr;
CurrencyManager cm = (CurrencyManager)this.BindingContext[dataGrid1.DataSource,dataGrid1.DataMember];
DataView dv = (DataView)cm.List;
dr =dv[cm.Position].Row;
dr.Delete();
VERSIONE VB.NET
Dim cm As CurrencyManager = CType(Me.BindingContext(DataGrid1.DataSource, DataGrid1.DataMember), CurrencyManager)
Dim dv As DataView = CType(cm.List, DataView)
Dim dr As DataRow
dr = dv.Item(cm.Position).Row
dr.Delete();
dr è proprio la riga che tu hai selezionato...la puoi così cancellare ad esempio!Ciao e fammi sapere se hai problemi!
secks
Profilo
| Senior Member
442
messaggi | Data Invio:
mer 16 feb 2005 - 11:26
Funziona alla grande!
Grazie, ciao.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !