Wednesday, June 5, 2024
 Popular · Latest · Hot · Upcoming
7
rated 0 times [  12] [ 5]  / answers: 1 / hits: 39118  / 14 Years ago, tue, october 19, 2010, 12:00:00

I couldn't find something similar in SO.



In ASP.NET, is there any way that on cue I can cause a partial postback with Javascript in an UpdatePanel?

I tried __doPostBack() but it does a full postback.

I can trick it with a dummy button and fire click() then handle the partial postback that way, but I want a more graceful way than trickery.



Thanks.



Edit: I found this disturbedbuddha.wordpress.com/2007/11/26/… but I can't get it to work =(

I would love for this method to work; it's perfect for me!
So far what I can do using this last method is gain reference to the timer. With the timer initially disabled, starting the timer doesn't seem to cause a postback. However, without Ajax, if I simply have the timer enabled initially, it posts back at intervals just fine; why can't the Ajax call cause it?


More From » asp.net

 Answers
31

You can use an AsyncPostBackTrigger with the UpdatePanel to do this. Because you need something that can fire an event, using a button is fairly simple and when hidden works nicely.



If this is your markup:



<asp:UpdatePanel ID=UpdatePanel1 runat=server OnLoad=UpdatePanel1_Load>
<ContentTemplate>
<!-- Contents... -->
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID=ReloadThePanel EventName=Click />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID=ReloadThePanel runat=server style=display:none; />


When you want the panel to be updated, you just need to call:



__doPostBack('<%=ReloadThePanel.ClientID %>', null);


This will make ASP.NET think that ReloadThePanel was clicked and the JavaScript auto-generated due to the trigger will handle the rest.



EDIT



You can do a pure JavaScript update of the UpdatePanel without any triggers or hidden buttons. You just need to invoke __doPostBack with the client-side ID as the first argument.



__doPostBack('<%=UpdatePanel1.ClientID %>', null);

[#95268] Friday, October 15, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
rayvencallij

Total Points: 93
Total Questions: 80
Total Answers: 85

Location: Argentina
Member since Thu, Mar 18, 2021
3 Years ago
;