来自母版页的Messagebox

时间:2012-03-22 11:53:59

标签: c# asp.net master-pages

如何从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);
    }
}

5 个答案:

答案 0 :(得分:2)

OnClientClick注册到LinkButton,然后警告将在回发之前显示,或者在回发期间在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);
}

答案 1 :(得分:0)

我只是把你的代码放到一个页面中,它没有问题。它不是一个母版页,但我发现为什么它不能在母版页中工作也没有区别。以下代码对我有用:

页面中的链接按钮:

        <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 :(得分: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警报),而无需进行多次页面编辑。

答案 3 :(得分:0)

在母版页的页面加载上写下以下代码

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

答案 4 :(得分:0)

以下代码对我有用。

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