Newsgroup: it.comp.www.asp
Titolo: ASP .NET:Problema con le DataGrid (Web)

Ciao a tutti, 
nella mia pagina devo visualizzare i dati di un recordset normalissimo
(non uso gli oggetti di ado .net perchè ho una dll che mi consente di
usare i recordset di ADO con le vecchie istruzioni : movenext,
movefirst .fields etc...)all'interno di una griglia. Quando l'utente
seleziona una riga devo visualizzare i dati delle celle in altrettanti
controlli text. Ho cercato il codice nell'help-on-line ed ho trovato
il seguente
......
Dim adoRec = --> mi faccio restituire il mio recordset
If adoRec.eof = False Then
   Dim dt As DataTable = New DataTable()
   Dim miacol As DataColumn
   Dim miariga As DataRow
   Dim i As Integer
   For i = 0 To adoRec.fields.count - 1
      miacol = New DataColumn()
      miacol.DataType = System.Type.GetType("System.String")
      miacol.ColumnName = adoRec.fields(i).name
      dt.Columns.Add(miacol)
   Next
   Do While Not adoRec.eof
      miariga = dt.NewRow()
      miariga("COD_TIPO_PRATICA") = adoRec.fields(0).value
      miariga("descrizione") = adoRec.fields(1).value
      dt.Rows.Add(miariga)
      adoRec.movenext()
    Loop
    Dim MioDV As New DataView(dt)
    DG.DataSource = MioDV 
End If
DG è il mio controllo DataGrid.
Ho provato ad eseguire il codice ma non funziona (non visualizza
niente)e non capisco il perchè, ho copiato pari pari l'esempio ma
niente, qualcuno è in grado di darmi una mano?
Grazie mille...
Giulia


Moderatore di it.comp.www.asp - Microsoft .NET MVP
http://www.aspitalia.com/
 Enjoy the .NET community!
http://www.dev2dev.it/
 La rete ha connesso nuove particelle!
http://www.extensible.it
 XML and beyond 

 Giulia
Piccola curiosità: usi dopo l'assegnazione della fonte dei dati il databind?
....
    Dim MioDV As New DataView(dt)
     DG.DataSource = MioDV
     DG.DataBind()
....
Ciao
--
AZ

 Ciao
Ciao Andrea, si ho provato a mettere dg.databind() ma le cose non
cambiano....
Ho provato anche la soluzione suggerita da Daniele cioč sostituire
Dim MioDV As New DataView(dt)
DG.DataSource = MioDV
con
DG.DataSource = dt.DefaultView
ma niente da fare...
Non vorrei che il mio problema sia causato dall'uso di
RequiredFieldValidator perchč ho due procedure che
abilitano/disabilitano i mie RequiredFieldValidator a seconda
dell'operazione che devo fare. In specifico se clicco su CERCA devo
popolare la griglia e non fare controlli, se clicco su INSERISCI devo
controllare i campi se se non sono vuoti devo inserire. Purtroppo
nemmeno questi controlli funzionano perchč anche se li disabilito il
controllo passa (RequiredFieldValidato.isvalid mi da true)....
Scusa, probabilmente le mie domande sono banali ma non riesco ad
andare avanti...
Grazie

 Grazie
Non è molto chiaro il problema della tua pagina se è dovuto al database o al 
form.
Ciao
--
AZ 

 
Grazie ho risolto con questa impostazione....
Ti faccio un ultima domanda me se io riuscissi a popolare la datagrid
il mio utente poi riesce a selezionare una riga? E io riesco ad
intercettare tale evento?
Grazie ancora....

 intercettare tale evento?
certo... devi configurare il dg con questa proprieta':
OnItemDataBound="nome_sub"
all'interno della sub intercetti sia il pasasggio del mouse sulla riga che i
valori delle celle...
--
Lino Mari [mod - it.economia.e-commerce]
http://www.ebow.it
 - e-business on web!
http://www.dev2dev.it
 - La rete ha connesso nuove particelle - d2D004
I mercati non vogliono parlare con ciarlatani e venditori ambulanti.
Vogliono partecipare alle conversazioni che si svolgono dietro i
firewall delle aziende.

 Grazie ancora....
Perché per popolare il datagrid non usi qualcosa come questo codice?
  Dim strConn as string ="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & 
server.mappath("nomedatabase.mdb")
  Dim objConn as New OleDbConnection(strConn)
  objConn.Open()
  Dim strSQL as String = "SELECT * FROM nometabella"
  Dim objCommand as New OleDbCommand(strSQL, objConn)
  Dim objDataReader as OleDbDataReader
  objDataReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection)
  lstAutori.DataSource = objDataReader
  lstAutori.DataBind()
Per la modifica della riga puoi seguire il consiglio di Lino...
Ciao
--
AZ 

 valori delle celle...
Aspetta se faccio doppio click sulla griglia l'unica cosa che vedo è 
Private Sub DG_SelectedIndexChanged(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles DG.SelectedIndexChanged
 
End Sub
cosa devo fare? Io vorrei che l'utente cliccando su una riga la veda
selezionata e il contenuto vada in due text esempio
testo1 .........     testo2............
codice           descrizione
01                pippo
02                pluto
se l'utente va sulla prima riga devo vederla selezionata e poi
testo1   01         testo2 pippo
Grazie mille per la tua disponibilità
Giulia

...

Il mio problema non č popolare la griglia (finalmente almeno quello
funziona...) ma č selezionare una riga e riportare il testo
all'interno di n text box. Il fatto č che non ci riesco... Ho provato
ad impostare ciň che mi ha detto Lino ma poi come faccio a
intercettare all'interno della sub il passaggio del mouse, il click
etc? E' possibile che non ci sia la possibilitŕ di avere eventi come
click, mouseclick... Scusate magari le mie domande sono banali ma non
so come andare avanti....
Grazie

 Grazie
Non si può spiegare il tutto in due parole, ma ti consiglio la visita di 
questi due link:
http://samples.gotdotnet.com/quickstart/aspplus/doc/webdataaccess.aspx
http://www.aspitalia.com/articoli/aspplus/grafica.aspx
Nel secondo caso, c'è un allegato che ti mostra come selezionare una riga in 
un datagrid per le modifiche.
Credo che facciano al caso tuo.
Ciao
--
AZ