2012-03-22 39 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');");