http://www.cnblogs.com/weiying/archive/2011/09/28/weiyinghhghhhh.html
和大家分享这篇日志,我的看法是:
原文地址:C#后台调用前台页面js方法: 原文作者:wuyawei4062
1.C#后台调用前台页面js方法:
ClientScriptManager cs = Page.ClientScript;
cs.RegisterStartupScript(this.GetType(), "", "<script type=\"text/javascript\">SubjectListener();</script>");
2.C#新开页面如何刷新父页面的做法:
2.1 我们现在有一个主框架页面,现在该页面上有所有的详细信息列表,当我们点击某一条列表信息我们能够查看其详细信息,当我们点击修改我们可以修改某一条信 息,当点击修改我们是新开了一面,当修改完点击确定我们要关闭当前修改页回到信息列表页,并且要及时刷新当前修改的信息,如何实现呢,这里有一种办法就 是,当修改成功的时候我们关闭当前页然后调用父框架页面上的js,页面上放一个按钮,把它的高宽都设置为0px;我们在它的on_Click事件中写要刷 新的部分代码。下来我们一步一步分析一下:
<asp:HyperLink ID="hlUpdate" Text="修改" NavigateUrl='<%# "UpdateSchool.aspx?ShoolID=" + Eval("ShoolID")+""%>' Target="_blank" runat="server">
我们现在列表信息页面有个修改链接,当我们点击修改我们要打开新的页面,UpdateSchool.aspx,当我们在修改页面修改完这条信息点击确定,这时候如果修改成功那么我们要关闭当前的修改页面回到列表页面,确定修改成功的实现是:
//给出提示并刷新父页面
System.Text.StringBuilder strJS = new System.Text.StringBuilder();
strJS.Append("try{window.opener.submitform();}catch(ex){}");
strJS.Append("alert('修改成功');window.opener=null;window.open('','_self');window.close();");
ClientScript.RegisterStartupScript(this.GetType(), "", strJS.ToString(), true);
我们分析一下这段代码,这里是当修改成功我们系统提示修改成功,关闭当前页,然后调用父页面的js submitform();方法
function submitform() {
var obj = document.getElementById("btreload");
obj.click();
}
<asp:Button ID="btreload" Width="0" Height="0" runat="server" OnClick="btreload_Click" />
后台实现:
/*回发刷新父页面时执行此操作*/
protected void btreload_Click(object sender, EventArgs e)
{
string sqlstring = ViewState["where"].ToString() + ViewState["OrderBy"].ToString();
BindEditionList(AspNetPager1.CurrentPageIndex, sqlstring); //当你点击那一页过去的回来时候还是那一页
}
我分析一下这里,这里主要做了一件事情就是当你在修改页面成功提交到该页面的时候,此时页面会自动调用On_Click事件进行刷新操作。
这样就ok了,大体就是这样实现的总结如上