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了,大體就是這樣實現的總結如上