4 messaggi dal 09 ottobre 2002
Spero che il mio problema non vi faccia sorridere troppo (o addirittura ridere) ma non ho molta esperienza con ASP e non riesco a realizzare la seguente applicazione:

Una Pagina che leggendo una Tabella di Database chiamata "Diazionario" costruisca dinamicamente il menu e tutti i controlli della WebForm (Label, TextBox, ButtonRationList, e quant'altro) li posizioni in modo corretto e li aggiorni con il contenuto del campo a cui effettuare il link (Informazione contenuta nel Dizionario).
Sono Riuscito a generarla in Visualizzazione è tutto OK, ma non così in Modifica.
La Procedura che salva i dati modificati dall'utente è lanciata dal click di un pulsante, peccato che prima di effettuare questa procedura venga generato il postback il quale ricarica i dati presenti nel database prima delle modifiche apportate dall'utente.

La mia ipotesi è quella di generami una classe MyPage che erediti dalla classe Page e sovrascrivere i metodi loadPostData e/o LoadViewState ma è la procedura corretta?

Come passano le informazioni questi metodi?

Chi mi può aiutare!!

D&G
16 messaggi dal 07 ottobre 2002
guarda io non ho esperienza sull'aspnet e ci ho sudato il sangue,ma alla fine mi funziona.
Inserisci questa Sub:


Sub MyDataGrid_Update(Sender As Object, E As DataGridCommandEventArgs)

Dim DS As DataSet
Dim MyCommand As SqlCommand

Dim UpdateCmd As String = "UPDATE COMLEG SET nomecampo1= @nomecampo1, nomecampo2= @nomecampo2 WHERE nomecampo1= @nomecampo1"

MyCommand = New SqlCommand(UpdateCmd, MyConnection)

MyCommand.Parameters.Add(New SqlParameter("@nomecampo1", SqlDbType.NVarChar, 50))
MyCommand.Parameters.Add(New SqlParameter("@nomecampo2", SqlDbType.NVarChar, 50))

MyCommand.Parameters("@nomecampo1").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))

Dim Cols As String() = {"@nomecampo1","@nomecampo2"}

Dim NumCols As Integer = E.Item.Cells.Count

Dim I As Integer
For I=1 To NumCols-2

Dim CurrentTextBox As TextBox
CurrentTextBox = E.Item.Cells(I+1).Controls(0)
Dim ColValue As String = CurrentTextBox.Text

MyCommand.Parameters(Cols(I)).Value = Server.HtmlEncode(ColValue)

Next

MyCommand.Connection.Open()

MyCommand.ExecuteNonQuery()
MyDataGrid.EditItemIndex = -1

MyCommand.Connection.Close()

BindGrid()

End Sub


e richiama con
OnUpDateCommand="MyDataGrid_Update"
DataKeyField="nomecampo1"

dentro a
<ASP:DataGrid>
...
</ASP:DataGrid>

Provaci poi fammi sapere,non ne so granhè neanch'io ma per ora mi funziona


Manuela
4 messaggi dal 09 ottobre 2002
Ciao Manuela, ti ringrazio per l'interessamento ma il mio problema non è legato alla procedura di salvataggio rel record ma al meccanismo con cui viene generato l'evento di postback.
Immagina di avere un record con 150 campi, non puoi inserirli in una DBgrid avresti un line con 150 colonne.
Il mio Apploccio è stato quello di suddividere i 150 campi in 5 viste da 30 campi. Ogni singola vista è composta da TexBox, RationButtonList ... posizionati come in una Windows Form. Questi componenti non sono inseriti staticamente ma dinamicamente mediante il metodo:

MyPage.Controls.Add (MyControl)

Al momento in cui clicco sul pulsante Salva ed effettuo il metodo postBack la procedura rigenera nuovamente la vista attiva e mi ripristina il vecchi contenuto. La procedura di salvataggio funziona ma va ad inserire in archivio i dati antecedenti alle modifiche apportate dal cliente.

Un saluto

D&G
16 messaggi dal 07 ottobre 2002
scusa non avevo capito bene il problema in effetii...
allora non so nemmeno io come fare  ,mi dispiace volevo aiutarti...

Manuela
4 messaggi dal 09 ottobre 2002
L'esempio l'ho comunque sfruttato !!

Ciao

D&G

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.