How to use __doPostBack()
You can try this in your web form with a button called btnSave for example:
<input type="button" id="btnSave" onclick="javascript:SaveWithParameter('Hello Michael')" value="click me"/><script type="text/javascript">function SaveWithParameter(parameter){ __doPostBack('btnSave', parameter)}</script>
And in your code behind add something like this to read the value and operate upon it:
public void Page_Load(object sender, EventArgs e){ string parameter = Request["__EVENTARGUMENT"]; // parameter // Request["__EVENTTARGET"]; // btnSave}
Give that a try and let us know if that worked for you.
This is also a good way to get server-side controls to postback inside FancyBox and/or jQuery Dialog.For example, in FancyBox-div:
<asp:Button OnClientClick="testMe('param1');" ClientIDMode="Static" ID="MyButton" runat="server" Text="Ok" ></asp:Button>
JavaScript:
function testMe(params) { var btnID= '<%=MyButton.ClientID %>'; __doPostBack(btnID, params);}
Server-side Page_Load:
string parameter = Request["__EVENTARGUMENT"]; if (parameter == "param1") MyButton_Click(sender, e);
Here's a brief tutorial on how __doPostBack()
works.
To be honest, I don't use it much; at least directly. Many server controls, (e.g., Button
, LinkButton
, ImageButton
, parts of the GridView
, etc.) use __doPostBack
as their post back mechanism.