Avatar billede thormam Nybegynder
13. januar 2011 - 12:22 Der er 1 løsning

Invalid postback or callback argument.

Har et problem jeg har bøvlet med et stykke tid nu og jeg undrer mig.

Jeg har lavet en side med en repeater der henter data fra en sql server 2008.

I min repeater har jeg en knap hvor text binded og hvor CommandArgument er binded:

asp:Button ID="btnNavn" runat="server" CommandName="btnCmdNavn" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "index") %>' Text='<%# DataBinder.Eval(Container.DataItem, "navn") %>'/>

Når jeg trykker på knappen kan jeg bruge "index" til at kalde hele kollonnen i databasen.. Jeg tror det giver mening.. :)

Det jeg undrer mig over er at det har virket uden problemer - kalder index på knappen og kan hente i databasen med den string sådan her:

protected void rptTest_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            if (e.CommandName == "btnCmdNavn")
            {
                string index = e.CommandArgument.ToString();
            }
        }

Jeg har lavet dette simple eksempel for selv at troubleshoote men selv dette her giver følgende fejl:


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.

Stack Trace:


[ArgumentException: 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.]
  System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument) +8656758
  System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument) +113
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +35
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563


Hvorfor kommer det nu? Kan ikke komme af med det med mindre jeg bruger
Page EnableEventValidation="true"
men det gør bare jeg ikke får returneret en værdi når jeg trykker på knappen.

Forslag?
Avatar billede thormam Nybegynder
13. januar 2011 - 14:46 #1
Blev løst ved at putte min kode i Page_Load i

if (!Page.IsPostBack)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester