Showing posts with label postback. Show all posts
Showing posts with label postback. Show all posts

Saturday, March 24, 2012

Invalid Callback Or Postback Argument

I wrote an ASP.NET 2.0 web page, which populates a drop down list according to the user input values. I put the drop down list into an AJAX UpdatePanel, which is triggered by some server controls. But when I try to run it, the following error prompts out:

Invalid postback or callback argument. Event validation is enabled using <pages enableeventvalidation="true" /> in configuration or <%@dotnet.itags.org. 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.

Anybody knows how to solve it?

hello.

can you build a small demo page that reproduces this problem and put it here?

thanks.

Invalid postback or callback arguement?

Hey, i have a page with a gridview in an update panel, which has a triggered by the user clicking button1, the gridview has a row_command that deletes the data in the gridview, the code worked fine before i added the update panel, but now i tested my page again, i clicked button1, and then tryed to delete the new item in the gridview.

I got the error message "Event validation is enabled using <pages enableEventValidation="true"/> in the config or in the page head.

My page head bit reads :

<%@dotnet.itags.org. Page Language="C#" MasterPageFile="MasterPage.master" EnableEventValidation="true" AutoEventWireup="true" Inherits="Masters_Default2" Title="Untitled Page" %>

But i still get the error,... where am i going wrong? thanks Si!

Have a look at this blog:http://blogs.msdn.com/amitsh/archive/2007/07/31/why-i-get-invalid-postback-or-callback-argument-errors.aspx

-Damien


Make it false and then try...

Let me know what happend

Invalid postback or callback argument

I keep logging several errors listed below. I have atlas running on my site with update panels on several pages. This error seems to occur if the user uses the browser "Back" button. Is there a way to handle or prevent this error?

Error on Page: /NewestMembers.aspx Error Date/Time: Aug 29, 2006 - 6:57:37 AM Error Message: Invalid postback or callback argument. Event validation is enabled using in configuration or 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. Error Source: System.Web Session Variables: Query String Variables: Form Variables: __EVENTTARGET = ctl00$_MainContentPlaceHolder$_NewestMembersGridView __VIEWSTATE = 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 __EVENTVALIDATION = 2YRA4zH2000xi7Lksp82pi1+tHABGzOHht7Et+u77Weu3g/BHP9mPNIn43W1htX8pl8A+lgBfwaLZ1wEqFInQUSD95SpvsF87mANctA9ZJk= __VIEWSTATEENCRYPTED = ctl00$_MainContentPlaceHolder$ScriptManager1 = ctl00$_MainContentPlaceHolder$_upNew __EVENTARGUMENT = Page$2 __PREVIOUSPAGE = zubEIIwaLs1mi-rZEVX2KuSBbYvdLRKqzF9n-nadHR81 Error Stack Trace: at System.Web.UI.ClientScriptManager.Valid ateEvent(String uniqueId, String argument) at System.Web.UI.Control.Valid ateEvent(String uniqueID, String eventArgument) at System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) at System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postD ata) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Hi,

I don't know your scenario but you could try to give a look tothis article by Joteke and see if it could be your case.


All of my pages are using the object datasource. I'm not doing any manual databinding.

Any other ideas out there?

Thanks for your suggestion


I have the same problem.

Here is my scenario. I have an update panel along with an AutoCompleteExtender. I have a DropDownList with an autopost back to make changes to the ContextKey property of the AutoCompleteExtender on SelectedIndexChange. which is causing me to get the post back error.

Any fixes for this?

Thanks,
Kam

Invalid postback or callback argument on page back

Hello,

I ran into this by placing myselft as the final user of my web application.

I have several pages using AJAX controls (update panel, autocomplete extender, etc), and I noticed that when I have redirect to another page, and till there, using the IE back page button, the previous page is loaded and then a message error is prompt (Invalid postback or callback argument)

By now I'm disabling the - PageEventValidation - but, actually I'd like to solve it in a better way.

Thanks in advance guys,

Hi Manotas,

Do you have databound controls, like a DropDownList or a GridView? If so, did you make sure they are initialized in a block that checks for inital page load?

For example:

if (false == Page.IsPostBack)

{

// code for initial load goes here

}

else

{

// code for PostBack from same page goes here

}

Pete


Hi Peter,

Thanks for reply.
I do have bound control. After reading at your post, I checked the initialization of my databound controls.
I realized that there is a gridview which I am initializing at first loading but not during postbacks, however, when the page is reload by using the back button on the browser, there is a postback and maybe is there where is my error. The thing is that I'm not sure what kind of validation I could do there since I wouldn't like to change the data of the parameters used on the select's datasource ...

I tried to find a pattern on the error... I must correct what I said about the invalid postback after the page's loading. In fact, I realized that it was happening only sometimes, and only when I was clicking on certain linkbuttons, on the other side, if I click on others buttons I was not having any problem at all. Also, as you mentioned the fact of look at databoud controls, I began testing and I found that I was getting the error only when I was turning back to the page and my gridview was visible (I'm using a multiview control, and the gridview I mentioned above is contained in its view).

By now, I restored the PageEventValidation and added at the update panel a postback trigger for the controls which are making visible my gridview.

Since I'm not receving the error message anymore... let's see I'l heard about it later...

Cheers

InverseTrigger?

Does such a thing exist yet? I want to trigger a full postback sometimes.
The usual scenario, is that I have the UpdatePanel around a grid to make sorting etc async.
Then, I want a link on the grid to redirect me to another form.
We use our own form loading mechanism, so it has to invoke a server-side function to replace the currently loaded form, which is of course around the UpdatePanel again (outside / parent).

How would this be possible?

hello.

if you want to have a full postback started by an element placed inside the updatepanel, then the easiest way to achieve that is to add a button, set its display style to none, and then call the click method over that dummy button.


Thanks but that won't cut it.
It cannot be done since the postback will be triggered by a button inside a repeater, and the buttons have their arguments.
It would be a hack to have a button which is hidden as well, and it wouldn't do me any good.
I want to handle the button's event like I usually would, not some other event (hack, duplicate code).

And if I really wanted to do that, I could just made the page implement IPostbackEventHandler and submit the form myself (without invisible button hack).

Please tell if UpdatePanel will have InverseTrigger in future releases. It is crucial if you have a LinkButton inside UpdatePanel that you know will do something with control outside it!

--

I made something named PopupCallback feature for popups calling a server side method on it's opener.
I can probably use that same thing to solve my problem. But UpdatePanel should really have this stuff built in!

Thanks in advance!

EmilChristopherMelar:


It cannot be done since the postback will be triggered by a button inside a repeater, and the buttons have their arguments.

well, not easy then. unfortunately, all the controls placed inside an updatepanel will only be able to produce a partial postback since those calls will allways be intercepted by client side. that's why i suggested the hack (which is really the easiest way to get a full postback from within an updatepanel)


I understand, but wouldn't it be a way to change the UpdatePanel to work this way as well? I think it is a requested feature.

Would it be possible to extend certain controls or tag them somehow with an extender or whatever to trigger a full postback / bypass UpdatePanel? I cannot use UpdatePanel since my page loading mechanics are not URL based, but post based ( I have my reasons ;-) ).
* bump *

Invoke client-script from the server...

I'm trying to be crafty here...I want to inject some client-script into a page, then execute it all without a postback. I thought I could use an update panel and do something like this...

1 <form id="form1" runat="server">
2 <asp:ScriptManager ID="ScriptManager1" runat="server" />
3
4 <script type="text/javascript" language="javascript">
5 document.write(Date());
6 </script>
7
8 <div style="background-color: Brown; border: solid 1px #999;">
9 <asp:Button id="button1" runat="server" onclick="button1_Click" text="clickMe" />
10 </div>
11
12 <asp:UpdatePanel id="updatePanel1" runat="server" updatemode="Conditional" />
13 </form>

CODE BEHIND AS FOLLOW --

1protected void Page_Load(object sender, EventArgs e)2{34}56protected void button1_Click(object sender, EventArgs e)7{8System.Web.UI.HtmlControls.HtmlGenericControl hiddenSpan =new HtmlGenericControl();9hiddenSpan.InnerHtml ="Here is some hidden text that I would like to show without refreshing the page.";10hiddenSpan.ID ="hiddenSpan";11hiddenSpan.Style.Add("display","none");1213updatePanel1.ContentTemplateContainer.Controls.Add(hiddenSpan);1415System.Web.UI.HtmlControls.HtmlGenericControl span =new HtmlGenericControl();16span.InnerHtml ="<script type='text/javascript' language='javascript'>document.getElementById('hiddenSpan').style.display = 'block';</script>";1718updatePanel1.ContentTemplateContainer.Controls.Add(span);1920updatePanel1.Update();21}
Turns out, the entire page refreshes when I attempt this. If I declare the button as a trigger for the update panel then the script won't work at all. Does anyone know how to do something like this? Keep in mind...this isn't my actual project, this is just a small test. My real project wouldn't have the button event...hopefully the update panel refresh and client script would be triggered by a totally different server event.

Add the Button as Trigger. Then Use the ScriptManager.RegisterStartupScript method to inject the js code like the following:

ScriptManager.RegisterStartupScript(this, this.GetType(), "startup", "document.getElementById('hiddenSpan').style.display = 'block';", true);


Bingo! You rock!! I didn't know the scriptmanager had registration events like that!! Thanks.

Invoke Javascript method after partial postback ?

Howdy All,

This might be an easy one but I don't seem to be able to figure it out.

Basically I have an update panel which contains a button that causes the partial postback. After the postback I'd like it to call a Javascript method.

I tried looking to set it on an atlas object and I even tried some hacks like putting a literal control in the Update Panel and setting the text to <script language=""Javascript"">testFunction();</script>" but still no cigar.

Any help would be greatly appreciated.

Try registering your script on the server-side, during the partial post. The script you register will be executed when the response is received from the partial postback.

Page.ClientScript.RegisterStartupScript

-Tony


in my callback function i havestring js = "alert('s');"; Page.ClientScript.RegisterStartupScript(GetType(), "key", js);It doesn't fire

casaubon:

in my callback function i have string js = "alert('s');"; Page.ClientScript.RegisterStartupScript(GetType(), "key", js); It doesn't fire

You need to wrap your js in <script type="text/javascript"> </script>, or use the overloaded RegisterStartupScript specifying "true" for the last parameter.

Hope this helps,

-Tony

Invoking ModalPopupExtender causes Submit button to not postback

I have a simple webform that contains a textbox and a required field validator. The page also has a modal popup extender tied to a button as well as two other buttons for saving the page's input and canceling the pages changes. The cancel button has causesvalidation="false".

I run the web application and on the page in question click the button that causes modal popup to show and then hide the modal popup. The textbox on the page does not have any text and so the validator shows the invalid message. When I click the 'Cancel' button the first time the page does nothing. If I click it again, the server side event handler is fired. Given that causesvalidation is set to false I expected the server event handler to fire on both occasions.

Here is the sample code that displays the said behavior -

<asp:ScriptManager ID="scriptManager1" runat="server" />
<div>
<asp:Label ID="label1" Text="Label1" runat="server" />
<asp:TextBox ID="textbox1" runat="server" />
<asp:RequiredFieldValidator ID="textRequiredFieldValidator" ControlToValidate="textbox1"
Text="*" runat="server" />
<br />
<asp:Button ID="popperUpperButton" Text="Show Popup" runat="server" />
<asp:UpdatePanel ID="pageUpdatePanel" UpdateMode="Always" runat="server">
<ContentTemplate>
<asp:Button ID="submitButton" Text="Send" OnClick="SubmitButton_Click" runat="server" />
<asp:Button ID="pageCancelButton" Text="Cancel" CausesValidation="false" OnClick="PageCancelButton_Click"
runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<br />
<asp:Label ID="statusLabel" runat="server" />
<act:ModalPopupExtender PopupControlID="modalPopupPanel" TargetControlID="popperUpperButton"
OkControlID="okButton" CancelControlID="leavePopupLinkButton" runat="server" />
</div>
<asp:Panel ID="modalPopupPanel" runat="server">
Just some text that is shown in the popup window.
<asp:Button ID="okButton" Text="OK" runat="server" />
<asp:LinkButton ID="leavePopupLinkButton" Text="Leave Popup" runat="server">
</asp:LinkButton>
</asp:Panel>

Server event handler code -

protected void Page_Load(object sender, EventArgs e)
{

}

protected void SubmitButton_Click(object sender, EventArgs e)
{
this.statusLabel.Text += "submit clicked...";
}

protected void PageCancelButton_Click(object sender, EventArgs e)
{
this.statusLabel.Text += "cancel clicked...";
}

Has anyone else seen this behavior and is there a known fix? I am seeing it consistently on the application I am building.

Thanks in advance,

Ruwan

Why are the submitButton and cancelButtons in an UpdatePanel but the textbox is not? Could you try to get the page working without the updatepanel first? I am not sure this issue has anything to do with the modalpopup being on the page.


Thanks for the response. I have tried the above with and without the updatepanel and see the same result. My reason for suspecting some coupling with the ModalPopupExtender is that the issue does not show up till the ModalPopupExtender is placed on the page.

The updated ASPX page reads -

<asp:ScriptManager ID="scriptManager1" runat="server" />
<div>
<asp:Label ID="label1" Text="Label1" runat="server" />
<asp:TextBox ID="textbox1" runat="server" />
<asp:RequiredFieldValidator ID="textRequiredFieldValidator" ControlToValidate="textbox1"
Text="*" runat="server" />
<br />
<asp:Button ID="popperUpperButton" Text="Show Popup" runat="server" />
<asp:Button ID="submitButton" Text="Send" OnClick="SubmitButton_Click" runat="server" />
<asp:Button ID="pageCancelButton" Text="Cancel" CausesValidation="false" OnClick="PageCancelButton_Click"
runat="server" />
<br />
<asp:Label ID="statusLabel" runat="server" />
</div>
<asp:Panel ID="modalPopupPanel" runat="server">
Just some text that is shown in the popup window.
<asp:Button ID="okButton" Text="OK" runat="server" />
<asp:LinkButton ID="leavePopupLinkButton" Text="Leave Popup" runat="server">
</asp:LinkButton>
</asp:Panel

Thanks,


have you tried adding a validationgroup attribute to the validator and the submit button. adding a attribute like validatorgroup="vg1" to both should cause all other control to ignore the validation except what is part of the group. This may help.


also, I will agree with kirtid, the use of the update panel may be part of the problem. Your update panel only wraps the 2 buttons, so clicking 1 will fire but you will not be able to see the results. if the label is NOT in the update panel. it will not be updated. Try moving the label into the update panel and see if it gets written to. also move the textbox and validator into the UP as well so they can be fired and accessed. I just ran that code with all of them inside the update panel, and it worked for me.

-Alan


Alan,

The ValidationGroup suggestion has provided a work-around for the test application, which now works fine. I will merge the solution in the product that first brought up the issue.

Thanks for the help!

Invoking postback for an update panel in a parent document

The default page for my website contains a div with links to user data that is only visible when a user is logged into my site. The login control lives in an IFrame within the default page (see sample code below).

Now, how can I get the udpate panel on the default page to recognize an event or a button click inside of the login control? I'm not looking for a tutorial on getting the login control to work, but rather any link button inside of the IFrame's update panel forcing the default page's update panel to post back. Both pages have a script manager.

chopped down version of existing code:

dafault page:

1<asp:update panel id="upUserPrefs" runat="server" updatemode="conditional">2 <contenttemplate>3 <div id="userPrefs" runat="server"><a href="prefs.aspx">preferences</a></div>4 </contenttemplate>5</asp:update panel>

IFrame source page:

1 <asp:UpdatePanel ID="updateSignon" runat="server" UpdateMode="conditional">2 <ContentTemplate>3 <asp:Table ID="tblLoginCtrl" runat="server" visible="false" Width="100%" HorizontalAlign="Left" CellPadding="0" CellSpacing="0">4 <asp:TableRow>5 <asp:TableCell ID="tcLoginCtrl">6 <uc1:LoginControl ID="LoginControl" Enable runat=server LoginStyle=Login_Home />7 </asp:TableCell>8 </asp:TableRow>9 </asp:Table>10 </ContentTemplate>11 </asp:UpdatePanel>
Any help would be greatly appreciated.

</p><p> (this.Parent.Parent as UpdatePanel).Update();</p><p>

is what I use.....however i have other problems...LOL. but that should fix yours.


Hi,

I think you can add a invisible button in the default page, set it as a trigger for the update panel.

Then add a javascript function in the contained page, in which invoke the click event of the button in the container.

Please feel free to let me know if there is any problem.


I tried that before, but when I have 2 instances of the same control on my page, it fires events for both of them. Or did I do something wrong?? Should this be happening? Have you ever heard of this??


In my opinion, it's normal that two control of the same type would behavior the same.

Is a "partial postback" really partial?

Hi,

I've inherited a large project and am now in charge of adding AJAX support to it, in order to make it seem more responsive to the users, and to avoid having to perform a complete postback every time the users want to navigate to a different control.

However, my first experiences with using AJAX.NET seem to be a bit disheartening. I added a simple UpdatePanel to the form, as well as a button and a textbox inside of it. The button has a server-side call to update the textbox with DateTime.Now.ToLongTimeString(). Now, whenever I call it, it takes at least 4 seconds to perform a round trip to the server and back with the time. This is unacceptable for our purposes, so I looked into the cause. Our pages are, to put it politely, freaking huge. For the 4-second one, the page is over 100k. So I did some testing, and it appears that on an ajax-postback, the entire page is being posted back to the webserver, constructed, and updated, and finally the relevant pieces (mainly the contents of the update panel) are sent back to be updated.

On the web I've seen many references to so-called "partial postbacks", which I took to mean that the AJAX call is only going to send the contents of the update panel back to the webserver, and not the entire page. Am I incorrect thinking this? In other words: is the entire web page always going to be sent back to the server, even with AJAX calls, or am I missing something important here?

Thanks for your time.

Hi

What you are getting is the default behaviour. What happened in ASP.NET AJAX is that page is posted back to the server and all the page events are rendered as such as in normal postback.

What happens actually, when you put the controls inside Update Panel, only the portion of the data that is inside Update Panel renders back to the server but the complete life cycle of the page behaves normally as normal postback.

So if you want the real power of AJAX, you have to sync with View State and all other stuff.

Hope that helps you..

Bye


Ron,

Your issue there could be ViewState size. Even if the page sends and receives only the data relevant to the UpdatePanel to refresh, ViewState is still transmitted and the complete page life cycle occurs.

Just turn trace on and check you ViewState size. If it's huge, try to find the controls that may have it disabled. If you manage to reduce it's size, your AJAX page will be "faster".

Also, something that really helped me to reduce "page size" and, therefore, AJAX "speed", was to enable IIS dynamic compression.


Cheers,

Juan


Yeah, compression helps, also make sure that your running in compilation mode='release' (in debug the scripts are 3x or more larger). Also, if there's no way to tighten up your viewstate, thne it might be worth it to look at other refresh techniques (more js heavy, less plug-n-play) like PageMethods or Webservices. Those will reduce the traffic to only that which is necessary.


I have found that using update panels and MS ajax will be quite a change in how you philisophically go and layout a page. This is something you will find out over the time you are working on your app. For instance, I had the same type of problem you did with viewstate and page size. I found that I had a gigantic drop down list that was filling up my viewstate and gridviews with lots and lots of records in them. My solution was to get rid of the dropdownlist by using a quick search repeater with a select button on each record. This, in a world with full postbacks would be cumbersome, but with updatepanels becomes quite easy. Second, I have gone the route of creating interfaces similar to regular applications like outlook with a record browse on the left and context on the right. The outer page with browsing is a page and the record is a page that gets popped in an iframe. This allows for a quickie javascript double click to open the record in its own window and a single click to open the record in the context window.

Another big help is managing your refreshes. You will find that using the 'updatemode="conditional"' setting in your update panels will also help to speed up the page. When an updatepanel is left without the conditional mark it postsback on each partial postback. Sometimes the implementation of this can be a bit tricky because you have to call the updatepanel.update() method in codebehind, but the benefit is definately worth the hassle.

Finally, shrinking down what you have in your updatepanels will definately help you keep your page moving quickly. If your entire page with huge drop down lists, etc.. works off one gridview this will be troublesome. When you can put your updatepanel around one textbox, then an updatepanel around the update button, you will be well on your way to super fast processing.

Remember that a partial postback posts back anything within the update panel and, therefore, the more you have in the updatepanel, the more that needs to be sent back to the browser.


Great thoughts, and advice. I'll echo the fact that it's a real balancing act, though. Too much granularity in your updates and you lose scalability. Too little and you kill your bandwidth and users suffer. Good page design can go along way to help you keep the balance.

Is Ajax features invalid if set an "ajax page" as an "iframe page" of another main page??

HI Guys:

I upgraded my atlas web application to the ajax v1.0 version and found a series problem: the ajax feature ( "no postback" ) is invalid in an "iframed page"!!

For exsample: I develop an ajax page A--- yes, it has scriptManager , updatepanel, some buttons in it and so on……, if I open the page in a unique IE brower, everyting works fine , i can savor the amoratic breeze of ajax effects; however , If I open page B where these codes place:

<iframe src=http://page A url width="700px" height="700px" scrolling="no" frameborder="0" ></iframe>

, or I can say if I experience page A in another parent page B -- the exited ajax effects disappeared!!! Moreover I get some "access denied" alert.

Who can tell me why? when i used the ajax RC version, I dident meets this . But now the final version baffles me and aggravate my aspiration of continious development.

Up Need help!