我正在尝试使用 ASP.NET 创建异步回发__doPostBack()
,但我不知道该怎么做。我想使用普通的 JavaScript。
像按钮点击这样简单的事情可能会导致__doPostBack()
事件触发。我只是想了解该机制的工作原理。
我正在尝试使用 ASP.NET 创建异步回发__doPostBack()
,但我不知道该怎么做。我想使用普通的 JavaScript。
像按钮点击这样简单的事情可能会导致__doPostBack()
事件触发。我只是想了解该机制的工作原理。
您可以使用名为 btnSave 的按钮在 Web 表单中尝试此操作,例如:
<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 Dialog内回发的好方法。例如,在 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()
。
老实说,我用得不多;至少直接。许多服务器控件(例如 、Button
、LinkButton
、 的ImageButton
部分GridView
等)__doPostBack
用作它们的回发机制。
我只是想为这篇文章添加一些东西asp:button
。我试过 clientId ,但它似乎对我不起作用:
__doPostBack('<%= btn.ClientID%>', '');
但是,获取 UniqueId 似乎会回发到服务器,如下所示:
__doPostBack('<%= btn.UniqueID%>', '');
这可能会在将来对其他人有所帮助,因此发布此信息。
老问题,但我想补充一点:调用时,doPostBack()
您可以使用服务器处理程序方法进行操作。
例如:
__doPostBack('<%= btn.UniqueID%>', 'my args');
将在服务器上触发:
protected void btn_Click(object sender, EventArgs e)
我没有找到更好的方法来获得论点,所以我仍在使用Request["__EVENTARGUMENT"]
.