Окно сообщений с главной страницы - PullRequest
0 голосов
/ 22 марта 2012

Как отобразить окно сообщения с самой главной страницы 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 ]

2 голосов
/ 22 марта 2012

Либо зарегистрируйте OnClientClick в LinkButton, тогда предупреждение будет отображаться перед обратной передачей, либо зарегистрируйте сценарий оповещения в обработчике Click -Event во время обратной передачи, чтобы предупреждение будет показано, как только страница будет передана клиенту в следующий раз:

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 голосов
/ 27 марта 2012

Следующий код работал для меня.

linkbutton1.OnClientClick ="javascript:alert('Hello')" 
0 голосов
/ 22 марта 2012

На странице загрузки главной страницы напишите следующий код

lnkButton.Attributes.Add("onclick","alert('message');");
0 голосов
/ 22 марта 2012

Вы должны использовать 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), не внося много правок страницы.

0 голосов
/ 22 марта 2012

Я просто поместил ваш код на страницу, и он работал без проблем. Это была не главная страница, но я не вижу разницы в том, почему она не будет работать на главной странице. Вот код, который работал для меня:

Кнопка ссылки на странице:

        <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);
    } 
...