加入收藏 | 设为首页 | 会员中心 | 我要投稿 大庆站长网 (https://www.0459zz.com/)- 科技、智能边缘云、事件网格、云计算、站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET UpdatePanel和Javascript __dopostback

发布时间:2020-11-14 11:16:02 所属栏目:asp.Net 来源:互联网
导读:我正在调用 javascript的部分回发,如下所示: function GetPolicyClick() {__dopostback(UpdatePanel1, PostCall);} 它是我需要它的1/2.它确实调用了部分回发,仅用于我的UpdatePanel. 现在是棘手的部分.我正在尝试(不知何故)在我的代码中引用__dopostback的第

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

function GetPolicyClick()
   {"__dopostback('UpdatePanel1','PostCall')";}

它是我需要它的1/2.它确实调用了部分回发,仅用于我的UpdatePanel.

现在是棘手的部分.我正在尝试(不知何故)在我的代码中引用__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做的其他事情一样).我怀疑我的代码隐藏是从页面而不是面板中抓取事件参数,但我真的不知道,有什么想法吗?

解决方法

如果你想在_EVENTARGUMENT中加入一些值,你应该在使用_doPostBack(‘UpdatePanel1’,”)发送表单之前用javascript执行此操作,因为__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','');
}

如果它不起作用,我建议你在Update面板中放入一个隐藏字段:

<asp:UpdatePanel runat="server" ID="UpdatePanel1">
    <ContentTemplate>
        <asp:HiddenField ID="hdnData" value="" runat="server" />
        <!-- your content goes here -->
    </ContentTemplate>
</asp:UpdatePanel>

然后像上面那样做同样的工作:

function setArgAndPostBack() {
    //Here hidden field is filled with your data
    $("#<%=hdnData.ClientID%>").val('something you want to put to server');
    __doPostBack('UpdatePanel1','');
}

在第一个场景中,您可以在服务器端获得__EVENTARGUMENT:

String args = Request["__EVENTARGUMENT"];

如果第一种情况不起作用,您可以使用类似的东西:

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

(编辑:大庆站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读