|
|
|
 |
|  |
 |
Sonia |
[Asp.Net] Update datagrid |
14-06-2005 19:54 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
[Asp.Net] Update datagrid
Ho un problema con la funzione update del datagrid.
Uso vbscript.
Ho due problemi.
1)
http://www.icconcorezzo.brianzaest.it/prova.aspx
Il problema è questo:
quando faccio edit ed edito il testo, me lo memorizza nel db, ma non mi aggiorna la pagina. Se aggiorno, mi dà il dato che ho appena memorizzato. Ho provato a mettere un response.redirect dandogli la stessa pagina, ma non funziona.
2)
Devo fare un'area protetta da user e pass.
Il web.config l'ho impostato in questo modo:
code:
<configuration>
<system.web>
<compilation defaultLanguage="vb" debug="true" />
<authentication mode="Forms">
<forms name="auth" loginUrl="login.aspx"
protection="All" timeout="30">
<credentials passwordFormat="Clear">
<user name="admin" password="admin" />
</credentials>
</forms>
</authentication>
<authorization>
<allow users="admin" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
Se metto il web.config nella cartella che devo proteggere (nel mio caso net/admin) mi dà il seguente errore:
Errore di configurazione.
Descrizione: Si è verificato un errore durante l'elaborazione di un file di configurazione necessario per soddisfare la richiesta. Verificare i dettagli dell'errore specifico riportati di seguito e modificare il file di configurazione in modo appropriato.
Messaggio di errore del parser: Non è possibile utilizzare una sezione registrata come allowDefinition='MachineToApplication' al di sotto del livello di applicazione. L'errore può essere dovuto alla presenza di una directory virtuale non configurata come applicazione in IIS.
Errore nel codice sorgente:
Riga 3: <compilation defaultLanguage="vb" debug="true" />
Riga 4:
Riga 5: <authentication mode="Forms">
Riga 6: <forms name="auth" loginUrl="login.aspx"
Riga 7: protection="All" timeout="30">
Se lo metto nella cartella di root, non mi fa accedere a nessuna pagina aspx e mi rimanda alla pagina di login.
Grazie in anticipo
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
|
14-06-2005 19:54 |
|
|
|  |
 |
Rocco.Li |
1) Devi rifare il databind della datagrid al termi ... |
14-06-2005 21:01 |
|
 |
Rocco.Li |
38 Primavere, Dottore !

Registered: Sep 2003
Posts: 609 (0.08 al dì)
Location: BARLASSINA (MI)
Corso: COMUNICAZIONE DIGITALE
Anno: Finitooooo !!!!
Time Online: 8 Days, 2:31:26 [...]
Status: Offline
Edit | Report | IP: Logged |
1) Devi rifare il databind della datagrid al termine dell'edit
ergo devi rifare la query a db e ripopolare il controllo.
2) la configurazione e' corretta ma non te la applica con conseguente errore perche' la directory che stai cercando di proteggere non e' un directory virtuale di IIS.
Accedendo da pannello di controllo, tools amministrativi --> Internet Information Services, indiviadua la directory che ti interessa e virtualizzala.
se sono stato ostico, chiedimi pure ulteriori spiegazioni
Ciao
__________________
Alcuni uomini vedono le cose come sono e dicono: << Perche' ? >>
Io sogno le cose come non sono mai state e dico: << Perche' No ? >>
George Barnard Shaw, Commediografo.
"non preoccuparti troppo, comunque vada la vita, non ne uscirai vivo !" - anonimo
|
14-06-2005 21:01 |
|
|
|  |
 |
Sonia |
[QUOTE][i]Originally posted by Rocco.Li [/i]
... |
14-06-2005 23:45 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Rocco.Li
2) la configurazione e' corretta ma non te la applica con conseguente errore perche' la directory che stai cercando di proteggere non e' un directory virtuale di IIS.
Accedendo da pannello di controllo, tools amministrativi --> Internet Information Services, indiviadua la directory che ti interessa e virtualizzala.
è quello che ho letto cercando in internet.
devo contattare l'amministratore del server quindi...
grazie 
quella del datagrid la provo domani, poi al massimo se ho problemi posso contattarti vero?
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
|
14-06-2005 23:45 |
|
|
|  |
 |
ripe |
Per quanto riguarda il controllo DataGrid ha ragio ... |
15-06-2005 09:37 |
|
 |
ripe |
- up in the mountains -

Registered: Jun 2002
Posts: 9469 (1.12 al dì)
Location: Cinisellooo
Corso: TICO TICO
Anno: Primo
Time Online: 61 Days, 2:33:39 [...]
Status: Offline
Edit | Report | IP: Logged |
Per quanto riguarda il controllo DataGrid ha ragione Rocco, non sapevo invece nulla sulla seconda questione. Grazie per il chiarimento, è utile anche a me!
__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»
|
15-06-2005 09:37 |
|
|
|  |
 |
Rocco.Li |
[QUOTE][i]Originally posted by ripe [/i]
... |
15-06-2005 10:46 |
|
 |
Rocco.Li |
38 Primavere, Dottore !

Registered: Sep 2003
Posts: 609 (0.08 al dì)
Location: BARLASSINA (MI)
Corso: COMUNICAZIONE DIGITALE
Anno: Finitooooo !!!!
Time Online: 8 Days, 2:31:26 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ripe
Per quanto riguarda il controllo DataGrid ha ragione Rocco, non sapevo invece nulla sulla seconda questione. Grazie per il chiarimento, è utile anche a me!
Sulla seconda questione potete notare che ogni volta che create una nuova Solution ASP.NET con VSTUDIO, viene creata di conseguenza una directory virtuale in IIS.
Infatti e lo stesso IIS che va a gestire tramite le impostazioni nel Web.Config la sicurezza, "l'aggancio" con il Framework.NET e' proprio la directory virtuale. Motivo percui, se volete proteggere solo una sottodirectory del vostro progetto inserendo un oppurtuno Web.Config dovete virtualizzarla.
__________________
Alcuni uomini vedono le cose come sono e dicono: << Perche' ? >>
Io sogno le cose come non sono mai state e dico: << Perche' No ? >>
George Barnard Shaw, Commediografo.
"non preoccuparti troppo, comunque vada la vita, non ne uscirai vivo !" - anonimo
|
15-06-2005 10:46 |
|
|
|  |
 |
ripe |
A me non piace molto la protezione via Web.config. ... |
15-06-2005 10:49 |
|
 |
ripe |
- up in the mountains -

Registered: Jun 2002
Posts: 9469 (1.12 al dì)
Location: Cinisellooo
Corso: TICO TICO
Anno: Primo
Time Online: 61 Days, 2:33:39 [...]
Status: Offline
Edit | Report | IP: Logged |
A me non piace molto la protezione via Web.config... preferisco lasciare l'accesso libero a tutti gli utenti da configurazione, e poi controllare pagina per pagina le credenziali... però ho capito come devo fare se sono costretto ad usarla!
__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»
|
15-06-2005 10:49 |
|
|
|  |
 |
Sonia |
[QUOTE][i]Originally posted by ripe [/i]
... |
15-06-2005 20:06 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ripe
A me non piace molto la protezione via Web.config... preferisco lasciare l'accesso libero a tutti gli utenti da configurazione, e poi controllare pagina per pagina le credenziali... però ho capito come devo fare se sono costretto ad usarla!
in che senso ripe?
tu come imposti le aree protette?
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
|
15-06-2005 20:06 |
|
|
|  |
 |
Sonia |
[QUOTE][i]Originally posted by Rocco.Li [/i]
... |
15-06-2005 20:10 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Rocco.Li
1) Devi rifare il databind della datagrid al termine dell'edit
ergo devi rifare la query a db e ripopolare il controllo.
ho poi controllato il mio script
alla fine dell'update gli faccio fare il databind
setto l'edititemindex a -1 così esco dalla funzione di edit e poi gli faccio fare il databind, ma non funziona come dovrebbe
code:
MyDataGrid.EditItemIndex = -1
BindDataGrid()
posso provare a fare una select al posto di quello, però avrei del codice ridondante
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
Last edited by Sonia on 15-06-2005 at 20:12
|
15-06-2005 20:10 |
|
|
|  |
 |
ripe |
[QUOTE][i]Originally posted by Sonia [/i]
... |
15-06-2005 21:13 |
|
 |
ripe |
- up in the mountains -

Registered: Jun 2002
Posts: 9469 (1.12 al dì)
Location: Cinisellooo
Corso: TICO TICO
Anno: Primo
Time Online: 61 Days, 2:33:39 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by Sonia
in che senso ripe?
tu come imposti le aree protette?
Ho creato una classe base da cui derivano tutte le pagine del sito e nel campo Roles imposto quali tipi di utenze possono visualizzare quella pagina (ne ho cinque in tutto: Developer, Administrator, Editor, Redactor, Helper)... nell'evento Page_Init controllo se l'utente è autenticato, controllo se il gruppo a cui appartiene è accreditato per quella pagina e in caso affermativo procedo.
Per l'autenticazione ho creato la classica pagina di login, sfruttando la classe FormsAuthentication senza utilizzare le proprietà del file Web.config. Le credenziali sono memorizzate nel database, con la password criptata con l'algoritmo SHA...
Spero di esserti stato utile!
__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»
|
15-06-2005 21:13 |
|
|
|  |
 |
Sonia |
Non riesco proprio a sistemare :(
... |
16-06-2005 10:05 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Non riesco proprio a sistemare 
code:
Dim objNomeCtrl As TextBox
objNomeCtrl = CType(objArgs.Item.FindControl("txt_nome"), TextBox)
'crea sql per update ed esegue
Dim strSQL As String
strSQL = "UPDATE interne SET Nome='" & objNomeCtrl.Text & "' WHERE ID=" &
MyDataGrid.DataKeys(objArgs.Item.ItemIndex) & ""
ExecuteSQLStatement(strSQL)
Dim cn As OleDbConnection
Dim strConnect As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" _
& Server.MapPath("database\menu.mdb")
'crea ed apre una nuova connection
Dim objConnect As New OleDbConnection(strConnect)
objConnect.Open()
'crea un nuovo Command
Dim objCommand As New OleDbCommand(strSQL, objConnect)
Dim objDataReader As OleDbDataReader
'esegue sql con Datareader
objDataReader = objCommand.ExecuteReader()
MyDataGrid.DataSource = objDataReader
'setta EditItemIndex a -1 per uscire dalla funzione di edit
MyDataGrid.EditItemIndex = -1
Dim strSelect As String
strSelect = "SELECT * FROM interne where riferimento='2'"
Try
'crea la connect e la apre
Dim objConnect2 As New OleDbConnection(strConnect)
objConnect2.Open()
'crea un Command ed esegue la sql
Dim objCommand2 As New OleDbCommand(strSelect, objConnect2)
objDataReader = objCommand2.ExecuteReader()
Catch objError As Exception
'mostra gli errori
outError.InnerHtml = "<b>* Error while accessing data</b>.<br />" _
& objError.Message & "<br />" & objError.Source & "<p />"
Exit Sub ' e ferma l'esecuzione
End Try
MyDataGrid.DataSource = objDataReader
MyDataGrid.DataBind()
ho provato sia a richiamare la funzione di datagrid principale, sia ad aggiungere la select in fondo alla funzione, ma il risultato non cambia
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
|
16-06-2005 10:05 |
|
|
|  |
 |
ripe |
Faccio fatica a leggere il codice scritto da altri ... |
16-06-2005 10:16 |
|
 |
ripe |
- up in the mountains -

Registered: Jun 2002
Posts: 9469 (1.12 al dì)
Location: Cinisellooo
Corso: TICO TICO
Anno: Primo
Time Online: 61 Days, 2:33:39 [...]
Status: Offline
Edit | Report | IP: Logged |
Faccio fatica a leggere il codice scritto da altri! 
Ma in linea di massima mi pare tutto corretto... sarà perché io non uso l'EditItemTemplate per modificare i dati!
Non capisco bene la sequenza delle operazioni che fai, cioè:
- prima aggiorni il database (ExecuteSQLStatement cos'è?)
- poi aggiorni la sorgente di dati ed esci dalla funzione di modifica, ma senza collegare i dati col DataBind
- successivamente leggi nuovamente i dati dalla tabella e li colleghi
__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»
|
16-06-2005 10:16 |
|
|
|  |
 |
Sonia |
[QUOTE][i]Originally posted by ripe [/i]
... |
16-06-2005 10:18 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ripe
Faccio fatica a leggere il codice scritto da altri! 
Ma in linea di massima mi pare tutto corretto... sarà perché io non uso l'EditItemTemplate per modificare i dati!
Non capisco bene la sequenza delle operazioni che fai, cioè:
- prima aggiorni il database (ExecuteSQLStatement cos'è?)
- poi aggiorni la sorgente di dati ed esci dalla funzione di modifica, ma senza collegare i dati col DataBind
- successivamente leggi nuovamente i dati dalla tabella e li colleghi
ExecuteSQLStatement è solo una funzione per vedere quali dati mi passa nella sql
cmq anche se rileggo i dati (cosa inutile) non me li aggiorna uff
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
|
16-06-2005 10:18 |
|
|
|  |
 |
ripe |
Mi viene in mente una cosa... dove colleghi i dati ... |
16-06-2005 10:24 |
|
 |
ripe |
- up in the mountains -

Registered: Jun 2002
Posts: 9469 (1.12 al dì)
Location: Cinisellooo
Corso: TICO TICO
Anno: Primo
Time Online: 61 Days, 2:33:39 [...]
Status: Offline
Edit | Report | IP: Logged |
Mi viene in mente una cosa... dove colleghi i dati la prima volta al datagrid prova a mettere (se non l'hai già fatto):
If Not Page.IsPostBack Then
*** il tuo vecchio codice ***
End If
__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»
|
16-06-2005 10:24 |
|
|
|  |
 |
Sonia |
[QUOTE][i]Originally posted by ripe [/i]
... |
16-06-2005 10:39 |
|
 |
Sonia |
dsy newser

Registered: Mar 2002
Posts: 1372 (0.16 al dì)
Location: Provincia di Pavia
Corso: INFORMATICA
Anno: In tesi :)
Time Online: 23 Days, 18:21:37 [...]
Status: Offline
Edit | Report | IP: Logged |
Originally posted by ripe
Mi viene in mente una cosa... dove colleghi i dati la prima volta al datagrid prova a mettere (se non l'hai già fatto):
If Not Page.IsPostBack Then
*** il tuo vecchio codice ***
End If
io ho messo
If Not Page.IsPostBack Then
BindDataGrid()
End If
dove BindDataGrid() è la funzione principale del datagrid
__________________
Spietata e diabolica!
"Questi libri non possono cancellare secoli di storia, specialmente se quella storia è sostenuta dal più grande best seller di tutti i tempi." Fraukman aveva sgranato gli occhi. "Non dirmi che Harry Potter parlava del Santo Graal."
"Parlavo della Bibbia." Fraukman aveva fatto una smorfia. "Dovevo aspettarmelo."
|
16-06-2005 10:39 |
|
|
|  |
 |
ripe |
E fin qui va bene... nella BindDataGrid cosa c'è ... |
16-06-2005 10:45 |
|
 |
ripe |
- up in the mountains -

Registered: Jun 2002
Posts: 9469 (1.12 al dì)
Location: Cinisellooo
Corso: TICO TICO
Anno: Primo
Time Online: 61 Days, 2:33:39 [...]
Status: Offline
Edit | Report | IP: Logged |
E fin qui va bene... nella BindDataGrid cosa c'è invece?
__________________
«And if you ever smell christian blood up in the mountains, then get your axe and chop them down!»
|
16-06-2005 10:45 |
|
|
|  |
 |
All times are GMT. The time now is 23:41. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|