gpt4 book ai didi

c# - 使用 JavaScript 从 C# 执行 doPostBack

转载 作者:行者123 更新时间:2023-11-29 18:32:46 25 4
gpt4 key购买 nike

您好,我有一个打开弹出窗口的父页面,用户在子弹出页面上进行一些更改,然后单击保存按钮。当用户点击保存按钮时,我想做 PostBack 到父页面,以便在弹出窗口中所做的更改可以在父窗口中看到。

问题:如何实现上述场景?

我想把脚本代码写在aspx.cs文件里,我试过了

string script = "";
script = "<script>window.opener.__doPostBack('UpdatePanel1', '')</script>";
ScriptManager.RegisterClientScriptBlock(Literal1, typeof(Literal), "yenile", script, true);

但这并没有做任何事情,没有任何错误。

我是 JavaScript 的新手,需要所有步骤的帮助。

最佳答案

父页面:

<asp:UpdatePanel runat="server">
<ContentTemplate>
<div>
<asp:Literal runat="server" ID="ChildWindowResult" />
</div>
<hr />
<input type="button" value="Open Dialog" onclick="window.open('MyDialog.aspx', 'Dialog');" />
<asp:Button ID="HiddenButtonForChildPostback" runat="server"
OnClick="OnChildPostbackOccured" style="display: none;" />
<asp:HiddenField runat="server" ID="PopupWindowResult"/>
</ContentTemplate>
</asp:UpdatePanel>

MyDialog 页面:

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.min.js"></script>
<script type="text/javascript">
function postData() {
var resultField = $("input[type='hidden'][id$='PopupWindowResult']", window.opener.document);
var parentPosDataButton = $("[id$='HiddenButtonForChildPostback']", window.opener.document);

resultField.val($("#<%= SomeValueHiddenField.ClientID %>").val());
parentPosDataButton.click();
}
</script>

<asp:TextBox runat="server" ID="SomeValueHiddenField" />
<asp:Button runat="server" OnClick="PostData" Text="Click Me" />

protected void PostData(object sender, EventArgs e)
{
SomeValueHiddenField.Value = DateTime.Now.ToString();
ClientScript.RegisterStartupScript(this.GetType(), "PostData", "postData();", true);
}

但我相信在这里使用一些弹出控件会更好,例如来自 AjaxControlToolkit 库的 PopUpExtender 或来自 jQuery-UI 的对话框。

关于c# - 使用 JavaScript 从 C# 执行 doPostBack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6154423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com