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
ASP.NET 1.0/1.1
Problemi con itemcommand
sabato 05 marzo 2005 - 14.45
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
lobax
Profilo
| Junior Member
93
messaggi | Data Invio:
sab 5 mar 2005 - 14:45
devo mettere un bottone su un datagrid per inserire lòa data corrente di spedizione dell'ordine:
ha 3 datagrid che si attivano allo scatenarsi di itemcommand:
parto da "clienti", per poi visualizzare "ordini" e cliccando sull'ordine appare il "dettaglio ordine" , nella griglia "ordini" devo inserire un'altro bottone select , che al clik vada ad aggiornare la data dell'invio ordine, quindi ho:
Private Sub DgOrd_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DgOrd.ItemCommand
Dim OID As Integer = DgOrd.DataKeys(e.Item.ItemIndex)
DgOrd.DataKeyField = "OID"
If e.CommandName = "Edit" Then
Dim updInvio As Offset.garage.OrdersDB = New Offset.garage.OrdersDB
updInvio.UpdateShipping(OID)
End If
If e.CommandName = "Select" Then
BindOrdDetGrid(OID)
End If
End Sub
--la sub di aggiornamento nella classe esterna:
Public Sub UpdateShipping(ByVal OID As Integer)
Dim myConnection As SqlConnection = New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
Dim myCommand As SqlCommand = New SqlCommand("UpdateShipDate", myConnection)
' assegna alla sp
myCommand.CommandType = CommandType.StoredProcedure
Dim parId As SqlParameter = New SqlParameter("@OID", SqlDbType.Int, 4)
parId.Value = OID
myCommand.Parameters.Add(parId)
End Sub
la procedura:
ALTER PROCEDURE UpdateShipDate
@OID Int
AS
Update Orders
SET
Shipdate = getdate()
WHERE
OID = @OID
--
non succede nulla, eppure sembrava tutto molto semplice, avete suggerimenti?
ciao lob
lobax
Profilo
| Junior Member
93
messaggi | Data Invio:
lun 7 mar 2005 - 11:44
Ti prego non infierire )-: 1 gioro intero senza che mi sia accorto che mancava.......scusate.
però , un'altra cosa piuttosto, come posso fare per visualizzare il dato aggiornato? ,
all'inizio avevo messo uno dei soliti edititemtemplate, ma succede che quando esegue "e.edititemindex = -1" scompaiono i dati dalla griglia , probabilmente perchè perde il dato ID che viene passato dall'altra griglia clienti, l'idea era quella di mettere un controllo calendarpopup in un template.
Questo è quello che uso:
Private Sub DgOrd_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DgOrd.ItemCommand
Dim OID As Integer = DgOrd.DataKeys(e.Item.ItemIndex)
If e.CommandName = "Edita" Then
Dim updInvio As Offset.garage.OrdersDB = New Offset.garage.OrdersDB
' e il dato aggiornato?
updInvio.UpdateShipping(OID)
End If
If e.CommandName = "Select" Then
BindOrdDetGrid(OID)
End If
End Sub
'Qui sotto commentato come volevo farlo funzionare ma come ti ho detto sopra .
Private Sub DgOrd_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DgOrd.EditCommand
'Dim OID As Integer = DgOrd.DataKeys(e.Item.ItemIndex)
'Dim cid As String = Request.Params("cid")
'DgOrd.EditItemIndex = e.Item.ItemIndex
'BindOrdGrid(cid)
End Sub
Private Sub DgOrd_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DgOrd.CancelCommand
'Dim cid As String = Request.Params("cid")
'DgOrd.EditItemIndex = -1
'BindOrdGrid(cid)
End Sub
Private Sub DgOrd_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DgOrd.UpdateCommand
'Dim OID As Integer = DgOrd.DataKeys(e.Item.ItemIndex)
'Dim cid As Integer
'Dim TimePic As eWorld.UI.CalendarPopup
'Dim updInvio As Offset.garage.OrdersDB = New Offset.garage.OrdersDB
'TimePic = e.Item.FindControl("TimePic")
'updInvio.UpdateShipping(OID, TimePic.SelectedDate)
'DgOrd.EditItemIndex = -1
'BindOrdGrid(cid)
End Sub
scusa per la cazzata di ieri.
ciao
lobax
Profilo
| Junior Member
93
messaggi | Data Invio:
lun 7 mar 2005 - 12:50
si ma come passo il parametro proveniente dalla griglia clienti?
cioè: io ho 3 griglie "clienti","ordini","dettaglio" la pagina carica "clienti":
Sub BindCliGrid()
Dim Customerslist As Offset.garage.CustomersDB = New Offset.garage.CustomersDB
DgCli.DataKeyField = "CID"
DgCli.DataSource = Customerslist.GetOrderDetCustomers
DgCli.DataBind()
End Sub
'poi cliccando sul bottone "commandName = "select" della griglia clienti:
Private Sub DgCli_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DgCli.ItemCommand
Dim Cid As Integer = DgCli.DataKeys(e.Item.ItemIndex)
BindOrdGrid(Cid)
End Sub
'collego "ordini":
Sub BindOrdGrid(ByVal cid As Integer)
Dim Orderslist As Offset.garage.OrdersDB = New Offset.garage.OrdersDB
DgOrd.DataKeyField = "OID"
DgOrd.DataSource = Orderslist.getOrderDetOrdini(cid)
DgOrd.DataBind()
DgOrd.Visible = True
End Sub
'in questa griglia ho 2 bottoni: commandname="edita" e: commandname="select" da quì devo aggiornare:
Dim OID As Integer = DgOrd.DataKeys(e.Item.ItemIndex)
If e.CommandName = "Edita" Then
Dim cid As Integer
Dim updInvio As Offset.garage.OrdersDB = New Offset.garage.OrdersDB
updInvio.UpdateShipping(OID)
BindOrdGrid(cid)
End If
If e.CommandName = "Select" Then
BindOrdDetGrid(OID)
End If
il problema è sempre lostesso è cioè quello che perdo il parametro, proveniente da dgCli(griglia clienti) ..in sostanza se faccio il binding della griglia "ordini" dopo l'update perdo i dati,visualizzo solo le intestazioni colonna, come puoi notare anche dal post precedente ho diversi tentativi di colegare "datakeyfield" di clienti con la variabile "cid" da passare a ordini, ma il risultato resta lostesso.
spero di essermi spiegato
grz 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 !