2010-11-29 11 views
0

注:私はSiteMapからレンダリングされるaspx ASPXページを持っています。 1回目のPOSTBACKが発生しますが、その後は同じセッションでPOSTBACKは起動しません。ASP.NET- 2回目のポストバックは、SiteMapリンク経由で起こっていませんか?

HACK(動作しない) - 私は、このASPXページを訪問していたとき、私はHTMLタグ

<html> 
<head id="Head1" runat="server"> 
    <META HTTP-EQUIV="Refresh" CONTENT="2"> 
    <link rel="Stylesheet" type="text/css" href="~/Main.css" id="style"/> 
</head> 
</html> 

内でこのようなリフレッシュメタタグを持って、私はこのMETAタグを一度だけ呼ばれるようにしたいです。 OnLoadCompleteイベントで次のコードを試していましたか? -

 HtmlMeta meta = new HtmlMeta(); 
     HtmlHead head = (HtmlHead)Page.Header; 
     head.Controls.RemoveAt(0); 

しかし、これは動作しません。ポストバックがなぜ起こっていないのでしょうか? D

答えて

0

< META HTTP-EQUIV =「リフレッシュ」CONTENT =「2」>

は、私たちが継続的にあなたのシナリオでは、ここで、特定の時間間隔の後にページを更新したいそれらのWebサイトに適していますならば一度だけページ全体をリフレッシュしたい場合は、 は2つのことを行うことができます *)。コールこのようなレスポンスのメソッド

Response.Redirect("currentPage.aspx") 

*)。 Page_Loadメソッド

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["refresh"] != null) 
    { 
     HtmlMeta meta = new HtmlMeta(); 
     HtmlHead head = (HtmlHead)Page.Header; 
     head.Controls.RemoveAt(0); 
    } 
    else 
     Session["refresh"] = "not null"; 
} 
+0

ジーバン、問題は私はこのaspxページに着陸するとき私はポストバックを取得していません。だから、私はPOSTBACKのMETA REFRESHタグを置いていました。そして、それ以上のPOSTBACKSは必要ありません。 – Jimmy

+0

@ Angshuman-通常のシナリオではポストバックを得られない理由を理解できないので、完全なコードを投稿できます。あなたの質問は明確ではありません。 –

+0

このページはSiteMapリンクからレンダリングされ、ロードされると最初のポストバックが発生します。しかし、2回目にリンクをクリックすると、POSTBACKは起動されません。 – Jimmy

0

で、私は<META HTTP-EQUIV="Refresh" CONTENT="2">もASP.NETがそれと対話するためにrunat="server"属性を持たなければならないと考えています。

UPDATE
それは、ページがPOSTを使用しますがGETを使用して取得されていないASP.NETのポストバックではありません二回目。たぶん<meta http-equiv="refresh" content="2;url=http://example.com/myurl?myvariable=XYZ"/>を使うかもしれないので、リフレッシュするときに変数を追加します。あなたの "ポストバック"で、その変数の存在をチェックします。

+0

Gidon、問題は、2番目のポストバックがサイトマップリンクで機能しない理由ですしたがって、これは私が試みたハックでした。この問題はBOLDに記載されています。 – Jimmy

+0

私のアップデートをチェックアウトしてください。 – Gidon

関連する問題