如何使用__doPostBack()
我试图在ASP.NET中使用__doPostBack()
创build一个asynchronous的回发,但我不知道该怎么做。 我想使用香草JavaScript。
简单的点击button可能会导致__doPostBack()
事件触发。 我只是想了解机制如何工作。
你可以在你的web表单中用一个叫做btnSave的button来试试这个例子:
<input type="button" id="btnSave" onclick="javascript:SaveWithParameter('Hello Michael')" value="click me"/> <script type="text/javascript"> function SaveWithParameter(parameter) { __doPostBack('btnSave', parameter) } </script>
而在你的代码后面添加这样的内容来读取值并对其进行操作:
public void Page_Load(object sender, EventArgs e) { string parameter = Request["__EVENTARGUMENT"]; // parameter // Request["__EVENTTARGET"]; // btnSave }
试试看,让我们知道如果这对你有用。
这也是获取服务器端控件在FancyBox和/或jQuery对话框中回发的好方法。 例如,在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); }
服务器端的Page_Load:
string parameter = Request["__EVENTARGUMENT"]; if (parameter == "param1") MyButton_Click(sender, e);
这里有一个关于__doPostBack()
如何工作的简要教程 。
说实话,我用不了多less; 至less直接。 许多服务器控件(例如Button
, LinkButton
, ImageButton
, GridView
等)使用__doPostBack
作为它们的回发机制。
我只想为asp:button
添加一些内容到这个post。 我试过clientId,它似乎并没有为我工作:
__doPostBack('<%= btn.ClientID%>', '');
但是,获取UniqueId似乎回发到服务器,如下所示:
__doPostBack('<%= btn.UniqueID%>', '');
这可能会帮助别人在将来,因此张贴这个。