There's a not-too-hard way to do this, I think.
This is ASP.NET, yes? So you have one <FORM> that is always the main <FORM> on the page.
But there's no rule that says you can't create another one, by hand.
So *AFTER* the </FORM> of the main form, plunk in this code:
<FORM name="HiddenForm" method="Post">
Dim fld As String
For Each fld In Request.Form
<INPUT Type=Hidden Name="<%=fld%>" Value="<%=Request.Form(fld)%>">
And now you can invoke
to effectively refresh the page!
I haven't tried this with ASP.NET, only with ASP, but I keep thinking about what has to be happening under the covers, and I believe it would work.
Understand, all that fancy stuff that ASP.NET uses--viewstate and the rest--has to be sent to the browser and then sent *back* from browser to server using standard HTTP Request protocol and standard browser methodology. And browsers *ignore* IDs when it come to deciding what to send from a <FORM> posting. Only the form field *names* are utilized and sent in the POST data in the same manner as a query string:
(that is, with appropriate URL encoding as needed).
So if you copy *ALL* the form fields that *GOT* you to the current page display in the browser into this hidden form, then submitting the hidden form should produce a refreshed version of this same page.