Repeater onItemCommand

lunedì 21 novembre 2005 - 18.20

ilpako Profilo | Junior Member

visto ke il post di sotto non ha trovato risposta da almeno 5 giorni ho risolto...o meglio ho evitato il problema...solo ke adesso ho creato nel mio repeater un rigo con una tabellina in cui c'è anke una checkbox...quello di cui ho bisogno è gestire il click della ccheckbox visto che la proprietà onitemcommand del repeater non prevede una checkbox ma solo bottoni...

Brainkiller Profilo | Guru

>visto ke il post di sotto non ha trovato risposta da almeno 5
>giorni ho risolto...o meglio ho evitato il problema...solo ke
>adesso ho creato nel mio repeater un rigo con una tabellina
>in cui c'è anke una checkbox...quello di cui ho bisogno è gestire
>il click della ccheckbox visto che la proprietà onitemcommand
> del repeater non prevede una checkbox ma solo bottoni...

Ciao,
vuoi gestire il click a che livello però ? Puoi impostare l'autopostback a true del checkbox e quindi gestire poi il tutto a livello di server oppure lo puoi gestire con Javascript. Io preferisco in questo caso gestirlo in javascript.

Per farlo, puoi usare la collection Attributes ed aggiungere un evento esempio onclick con corrispondente funzione Javascript da cui poi decidi cos fare.

ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

ilpako Profilo | Junior Member

allora...ho impostato la proprietà autopostback=true della checkbox inserita nel repeater:
<asp:Repeater id="Repeater2" runat="server" OnItemCommand="selezionaequip">
...
<ItemTemplate>
<tr><td><asp:CheckBox id="chkequip" Text='<%#Container.DataItem("Equipaggiamento")' Runat="server" autopostback=true /></td>
<td><asp:Label id="lblequipprezzoradio" Text='<%#Container.DataItem("Prezzo") &",00 Euro"%>' Runat="server" />
</td></tr>
</ItemTemplate>
...
</asp:Repeater>

Il problema è che la pagina si ricarica ma l'evento seguente:

Public Sub selezionaequip(ByVal Sender As System.Object, ByVal e As RepeaterCommandEventArgs)
Dim id
sqlCmd = "SELECT ID FROM Equipaggiamenti WHERE Equipaggiamento='" & e.CommandSource.Text & "'"
cmd = New OleDbCommand(sqlCmd, dbConn)
aReader = cmd.ExecuteReader()
If aReader.Read() Then
id = CType(aReader(0), Integer).ToString
End If
aReader.close()
If e.CommandSource.Checked = True Then
Session("equiprichiesta").Remove(id)
Else
dbConn.Open()
Session("equiprichiesta").Add(id)
End If
dbConn.Close()
End Sub

...non viene intercettato

Brainkiller Profilo | Guru

E' chiaro,
se fai un autopostback, devi gestire il tutto dentro l'evento OnLoad della pagina o dentro altri eventi scatenati dal DataBinding del Repeater tipo OnItemDataBound o simili.

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

ilpako Profilo | Junior Member

potresti essere più kiaro? cos'è ke non va nell'evento da me scritto?i parametri?

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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5