20 messaggi dal 17 luglio 2001
Salve sulla mia pagina ho una DropDownList con Autopostback=true, poi c'è un Repeater che si aggiorna ogni volta mostrando i dati relativi al valore selezionato.
Tutto funziona correttamente fino a quando non ho messo sul Repeater un controllo ImageButton che intercetto con l'evento OnItemCommand, quando la pagina viene ricaricata al Page_Load, e dove c'è anche il codice per intercettare il valore selezionato del DropDownList e popolare il Repeater, la pagina va in errore.

come si può risolvere il problema?

saluti
che tipo di errore?

posta il codie relativo al PageLoad solo la parte che interessa l'ImageButton e il repeater.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
20 messaggi dal 17 luglio 2001
Al page_load ho questo codice
protected void Page_Load(object sender, EventArgs e)
{
ListItem item;
TypeSel = ddlRisorse.SelectedValue;
switch (TypeSel){
default:
rptRisorse.DataSource = resDA.lstImmagini();
rptRisorse.DataBind();
break;

case "FIL":
rptRisorse.DataSource = resDA.lstAttachment();
rptRisorse.DataBind();
break;

case "LNK":
rptRisorse.DataSource = resDA.lstLink();
rptRisorse.DataBind();
break;
}




}
L'errore che mi viene fuori è questo:

Invalid postback or callback argument. Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.


praticamente, visto che non riesco a far saltare la parte di codice all'interno dell'istruzione switch, il Repeater viene popolato nuovamente facendo perdere l'evento che l'ha scatenato.

saluti
per prima cosa potresti subordinare il primo popolamente del Repeater al fatto che la pagina sia richiesta o meno a causa di un postback, e poi utilizzate l'evento SelectedIndexChanged (non so se ho scritto il nome dell'evento bene) della DropDownList per ribindare il Repeater.

il compito del bottone quale sarebbe visto che hai impostato la Drop per fare il PostBack in automatico?

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
20 messaggi dal 17 luglio 2001
il pulsante è all'interno del Repeater e serve per modificare il record selezionato.

ciao
ok rimane allora valido il consiglio, non eseguire ogni volta il bind nel PageLoad, eseguilo solo una volta e poi solo quando il valore della DropDowList

qualacosa del genere

--> PageLoad
---> se non è un PostBack popolo il Repeater

-->Cambio valore DLL
---> popolo il Repeater

--> Evento ItemCommad
---> quello che deve fare

ciao marco

p.s. spero di essermi spiegato

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
20 messaggi dal 17 luglio 2001
sei stato chiarissimo, e infatti ho corretto il tutto e funziona, non sapevo dell'evento OnSelectedIndexChanged.

grazie
di nulla:), considera che asp.net si può definire come una piattafomra di sviluppo event driver (non so se si dice così  ).
in genere te pensa all'evento che ti servirebbe e vedrai che lo trovi li pronto ad essere usato

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.