如何从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);
}
}
答案 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')"