如何使用__doPostBack()

2020/10/28 06:22 · javascript ·  · 0评论

我正在尝试使用在ASP.NET中创建异步回发__doPostBack(),但是我不知道该怎么做。我想使用香草JavaScript。

诸如单击按钮之类的简单操作可能导致__doPostBack()事件触发。我只是想学习该机制的工作原理。

您可以在Web表单中使用名为btnSave的按钮进行尝试,例如:

<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()

老实说,我使用的并不多;至少直接。许多服务器控件(例如,ButtonLinkButtonImageButton,的部分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"]

就像其他人所说的那样,您需要向__doPostback()方法提供控件的UniqueID。

__doPostBack('<%= btn.UniqueID %>', '');

在服务器上,提交的表单值由页面中字段名称属性标识

之所以能使用UniqueID,是因为当服务器控件以HTML呈现时,UniqueID名称实际上是同一件事。

这是描述什么是UniqueID的文章:

UniqueID属性还用于为输入字段(复选框,下拉列表和隐藏字段)的HTML“名称”属性提供值。UniqueID在回发中也起主要作用。支持回发的服务器控件的UniqueID属性为__EVENTTARGET隐藏字段提供数据。然后,ASP.NET运行时使用__EVENTTARGET字段来查找触发回发的控件,然后调用其RaisePostBackEvent方法。

src:https
//www.telerik.com/blogs/the-difference-between-id-clientid-and-uniqueid

这就是我的方法

    public void B_ODOC_OnClick(Object sender, EventArgs e)
    {
        string script="<script>__doPostBack(\'fileView$ctl01$OTHDOC\',\'{\"EventArgument\":\"OpenModal\",\"EncryptedData\":null}\');</script>";
        Page.ClientScript.RegisterStartupScript(this.GetType(),"JsOtherDocuments",script);               
    }
本文地址:http://javascript.askforanswer.com/ruheshiyong__dopostback.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!