ASP.NET UpdatePanel和Javascript

ASP.NET UpdatePanel和Javascript,javascript,asp.net,events,postback,arguments,Javascript,Asp.net,Events,Postback,Arguments,我调用javascript的部分回发,如下所示: function GetPolicyClick() {"__dopostback('UpdatePanel1', 'PostCall')";} 它只做了我需要的一半。它确实会调用部分回发,只是为了我的UpdatePanel 现在是棘手的部分。我试图(不知何故)在我的代码隐藏中引用u dopostback的第二个参数。这不起作用: Private Sub UpdatePanel1_Load(ByVal sender As Object, B

我调用javascript的部分回发,如下所示:

function GetPolicyClick()
   {"__dopostback('UpdatePanel1', 'PostCall')";}
它只做了我需要的一半。它确实会调用部分回发,只是为了我的UpdatePanel

现在是棘手的部分。我试图(不知何故)在我的代码隐藏中引用u dopostback的第二个参数。这不起作用:

Private Sub UpdatePanel1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdatePanel1.Load

    Dim MyArg As String = Request("__EVENTARGUMENT")

End Sub
我只得到一个空字符串


当然,我试图做的可能是完全错误的(就像我试图用ASP做的其他事情一样)。我怀疑我的代码隐藏是从页面而不是面板中获取事件参数,但我真的不知道,有什么想法吗?

如果你想在\u EVENTARGUMENT中添加一些值,你应该在通过\u doPostBack('UpdatePanel1','')发送表单之前使用javascript执行此操作因为uuu EVENTTARGET是隐藏字段,在html文档中看起来如下:

<input type="hidden" value="" id="__EVENTARGUMENT" name="__EVENTARGUMENT">
function setArgAndPostBack() {
    var arg = document.getElementById('__EVENTARGUMENT');
    var arg = document.getElementById("__EVENTARGUMENT");
    arg.value = 'something you want to put to server';
    __doPostBack('UpdatePanel1', '');
}
如果使用jQuery,则会更短:

function setArgAndPostBack() {
    $("#__EVENTARGUMENT").val('something you want to put to server');
    __doPostBack('UpdatePanel1', '');
}
如果不起作用,我建议您在更新面板中放置一个隐藏字段:

<asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <ContentTemplate>
        <asp:HiddenField ID="hdnData" value="" runat="server" />
        <!-- your content goes here -->
    </ContentTemplate>
</asp:UpdatePanel>
如果第一个场景不起作用,您可以使用类似的方法:

String args = hdnData.Value;//This works even in Page_Load function.

你试过Request.Form(“\uuu EVENTTARGET”)吗?哇,伙计,我不得不说,在我在这个网站上发布的所有帖子中,这篇有两颗珍珠。多亏了这两个!!这是不正确的
\uuuDoPostBack
用第一个和第二个参数覆盖
\uuuEventTarget
\uuEventArgument
,因此在调用它之前设置它们是毫无意义的(并且会产生误导)。这里也不需要隐藏字段。只需使用
\u doPostBack
的参数即可。
String args = Request["__EVENTARGUMENT"];
String args = hdnData.Value;//This works even in Page_Load function.