2012-03-22 65 views
0

如何從ASP.net(C#)母版頁自身顯示消息框。我的意思是當母版頁上的鏈接按鈕被點擊時,將顯示一個消息框。我試着調用下面的方法沒有結果。來自母版頁的消息框

public void MessageBox(string message, Page page) 
{ 
    if (!string.IsNullOrEmpty(message)) 
    { 
     Label lbl = new Label(); 
     lbl.Text = "<script type=\"text/javascript\" language=\"javascript\">" 
        + "alert('" + message + "'); " + "</script>"; 
     page.Controls.Add(lbl); 
    } 
} 
+2

你需要將它附加到linkbutton的點擊,爲什麼你需要標籤? 'linkbutton1.OnClientClick =「javascript:alert ....' – V4Vendetta 2012-03-22 11:57:19

+0

謝謝你..幫助 – 2012-03-22 12:05:00

回答

0

下面的代碼爲我工作。

linkbutton1.OnClientClick ="javascript:alert('Hello')" 
0

我只是把你的代碼放入一個頁面,它沒有問題。這不是一個母版頁,但我看不出它爲什麼在母版頁中不起作用。這裏是爲我工作的代碼:

頁面LinkBut​​ton的:

 <asp:LinkButton ID="LinkButton1" runat="server" onclick="LinkButton1_Click">LinkButton</asp:LinkButton> 

背後的代碼:

 public void MessageBox(string message, Page page) 
    { 
     if (!string.IsNullOrEmpty(message)) 
     { 
      Label lbl = new Label(); 
      lbl.Text = "<script type=\"text/javascript\" language=\"javascript\">" + "alert('" + message + "'); " + "</script>"; 
      page.Controls.Add(lbl); 
     } 
    } 

    protected void LinkButton1_Click(object sender, EventArgs e) 
    { 
     MessageBox("test", Page); 
    } 
2

要麼註冊OnClientClickLinkButton,則警報會在回發之前顯示,或者在回發期間將警報腳本註冊到Click-事件處理程序中,以便在下一次將頁面呈現給客戶端時立即顯示警報:

protected void Page_Load(object sender, System.EventArgs e) 
{ 
    MyButton.OnClientClick = "alert('MyButton clicked!');"; 
} 

protected void MyButton_Click(object sender, System.EventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "AlertScript", "alert('MyButton clicked!');", true); 
} 
0

您應該使用ClientScriptManager.RegisterClientScriptBlock向頁面添加腳本,而不是使用JavaScript值的文字控件。

我建議一個基類爲您的母版頁,是這樣的:

public sealed class MasterPageBase : MasterPage 
{ 
    protected void AddAlertMessage(string Message) 
    { 
     var script = String.Format("alert('{0}');", Message); 
     this.Page.ClientScript 
      .RegisterStartupScript(this.GetType(),"PageAlertMessage",script,true); 
    } 

} 

現在在你的母版頁設置這個作爲你的基地,你可以撥打:

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    this.AddAlertMessage("Hello"); 
} 

的主要的好處在於腳本細節被抽象出來,並且您可以輕鬆地對它們進行全局更改(例如切換爲Growl Style警報),而無需進行多次頁面編輯。

0

在母版頁的頁面加載中寫入以下代碼

lnkButton.Attributes.Add("onclick","alert('message');");