2009-08-26 5 views
0

ページがロードされるときに起動したいAJAXモーダル・ポップアップがあります。現在、私は私のPage_Loadの中で、次のしている:ボディ・オンロードでモーダル・ポップアップを起動する

HtmlGenericControl myBody = (HtmlGenericControl)Master.FindControl("thebody"); 
myBody.Attributes.Add("onload", "openMP();") 

これが成功したのonload関数を(私はソースを見ることによって伝えることができます)注入します。ただし、onload関数は決して起動しません。どんな助言も役に立つでしょう。ありがとう。

*変更点は、次の質問*

マスターページで

関連するコード:

<asp:LoginView ID="LoginView1" runat="server"> 
      <LoggedInTemplate> 
      <a href="logout.aspx"> 

子ページ内

関連するコード:

if (!Page.IsPostBack) 
    { 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "openMP();", true); 
     Response.Write("Test"); 
    } 

答えて

1

あなたはClientScript.RegisterStartupScriptを見てみたいことがあります。

Page Loadイベント内では、ページがロードされるたびにこのイベントが発生します。

EDIT:明確さのために、ここで私は私のコメントで話しているかの例です:

ASPXページのコードビハインド:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", 
      "openMP();", true); 
} 

ASPXページ:

<Form ID="Form1"> 
. 
. 
. 
</Form> 
<Script Language="javascript"> 
    function openMP() { 
     ... 
    } 
</Script> 
+0

これを私のPage_Loadイベントに入れて、そのページが継続的に更新されているようです(モーダルポップアップは表示されず、主ページが何度も繰り返し読み込まれます)。なぜこれが起こっているのでしょうか?ご協力いただきありがとうございます。 –

+0

openMP関数がポストバックを実行していると思いますか?もしそうなら、無限ループに陥るかもしれません。これを避けるために、RegisterStartupScriptを条件付きにすることができます。 – CAbbott

+0

次は、openMPにあります。 document.getElementById( "ctl00_LoginView1_Button1")。クリック(); (ボタン1はmodalpopupを起動するターゲットボタンです)無限ループを回避するにはどうすればよいですか?ありがとう。 –

関連する問題