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

标签 c# javascript asp.net dopostback

嗨,我有一个父页面,它打开一个弹出窗口,用户在子弹出页面上进行一些更改,然后单击保存按钮。 当用户单击保存按钮时,我想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/

相关文章:

javascript - 在 Ember.js 中计算日期差异

c# - RabbitMQ 连接错误 "None of the specified endpoints were reachable"

asp.net - 如何在不对其名称进行硬编码的情况下引用主域?

c# - ASP.NET MVC 3 中的部分页面缓存和 VaryByParam

c# - 如何在 RavenDB 中选择一个类型的所有文档

javascript - 动态创建的输入按钮被 Tab 键跳过...如何设置 tabindex

asp.net - 将值传递到下一页

c# - 如何使用SQLiteCommand进行插入查询?

c# - 为什么我不能在主程序中与表单对象进行交互?

javascript - 如何使用 jQuery.grep() 过滤多维 JSON 对象