Mic*_*ute 154 javascript c# asp.net postback
我正在尝试使用ASP.NET创建一个异步回发__doPostBack(),但我不知道如何做到这一点.我想使用vanilla JavaScript.
像按钮单击这样简单的东西会导致__doPostBack()事件触发.我只是想了解这种机制是如何运作的.
Mr.*_*Mr. 148
您可以使用名为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>
Run Code Online (Sandbox Code Playgroud)
在你的代码后面添加这样的东西来读取值并对其进行操作:
public void Page_Load(object sender, EventArgs e)
{
string parameter = Request["__EVENTARGUMENT"]; // parameter
// Request["__EVENTTARGET"]; // btnSave
}
Run Code Online (Sandbox Code Playgroud)
尝试一下,让我们知道这是否适合您.
use*_*317 24
这也是让服务器端控件在FancyBox和/或jQuery Dialog中回发的好方法.例如,在FancyBox-div中:
<asp:Button OnClientClick="testMe('param1');" ClientIDMode="Static" ID="MyButton" runat="server" Text="Ok" >
</asp:Button>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
function testMe(params) {
var btnID= '<%=MyButton.ClientID %>';
__doPostBack(btnID, params);
}
Run Code Online (Sandbox Code Playgroud)
服务器端Page_Load:
string parameter = Request["__EVENTARGUMENT"];
if (parameter == "param1")
MyButton_Click(sender, e);
Run Code Online (Sandbox Code Playgroud)
我想在这篇文章中添加一些内容asp:button.我尝试过clientId,它似乎对我不起作用:
__doPostBack('<%= btn.ClientID%>', '');
Run Code Online (Sandbox Code Playgroud)
但是,获取UniqueId似乎会回发到服务器,如下所示:
__doPostBack('<%= btn.UniqueID%>', '');
Run Code Online (Sandbox Code Playgroud)
这可能在将来帮助其他人,因此发布此信息.
老问题,但我想补充一点:调用时,doPostBack()您可以使用服务器处理程序方法进行操作。
例如:
__doPostBack('<%= btn.UniqueID%>', 'my args');
Run Code Online (Sandbox Code Playgroud)
将在服务器上触发:
protected void btn_Click(object sender, EventArgs e)
Run Code Online (Sandbox Code Playgroud)
我没有找到更好的方法来获得论点,所以我仍在使用Request["__EVENTARGUMENT"].
| 归档时间: |
|
| 查看次数: |
382674 次 |
| 最近记录: |