如何编写代码,当我单击asp.net上的按钮时,会出现引导程序或消息框的警报消息?
protected void ButtonLogin_Click(object sender, EventArgs e)
{
//TextBoxEmail.Text = DateTime.Now.ToString();
string UserName = TextBoxEmail.Text.Trim();
string password = TextBoxPassword.Text.Trim();
OracleConnection conn = new OracleConnection(strConnString);
conn.Open();
sql = "select password from userlogin where USERNAME = '" + UserName + "' and password ='" + password + "' ";
cmd = new OracleCommand(sql, conn);
// orada=new OracleDataAdapter(com.CommandText,conn);
// cmd.CommandType = CommandType.Text;
dr = cmd.ExecuteReader();
//dr.Read();
if (dr.HasRows)
{
Label1.Text = "";
Response.Redirect("Details.aspx");
}
else
{
Label1.Text = "No data found...";
conn.Close();
}
}
}
上面的 else 部分:
else
{
Label1.Text = "No data found...";
conn.Close();
}
当用户名和密码不匹配时,我希望网站上出现引导警报或消息框:“密码不正确”。我怎么能这么做呢?
HTML(母版页):
<div class="MessagePanelDiv">
<asp:Panel ID="Message" runat="server" Visible="False">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<asp:Label ID="labelMessage" runat="server" />
</asp:Panel>
</div>
枚举:
public enum WarningType
{
Success,
Info,
Warning,
Danger
}
隐藏代码:
/// <summary>
/// Shows a message based of type and message
/// </summary>
/// <param name="message">Message to display</param>
/// <param name="type">ENUM type of the message</param>
public void ShowMessage(string Message, WarningType type)
{
//gets the controls from the page
Panel PanelMessage = Master.FindControl("Message") as Panel;
Label labelMessage = PanelMessage.FindControl("labelMessage") as Label;
//sets the message and the type of alert, than displays the message
labelMessage.Text = Message;
PanelMessage.CssClass = string.Format("alert alert-{0} alert-dismissable", type.ToString().ToLower());
PanelMessage.Attributes.Add("role", "alert");
PanelMessage.Visible = true;
}
用途:
ShowMessage("<strong> Error! </strong> Error message to show", WarningType.Danger);
编辑
CSS 类:
.MessagePanelDiv
{
position:fixed;
left: 35%;
top:15%;
width:35%;
}
Javascript 计时器自动删除警报:
$(document).ready(function () {
window.setTimeout(function () {
$(".alert").fadeTo(1500, 0).slideUp(500, function () {
$(this).remove();
});
}, 3000);
});
没有MasterPage
<div class="MessagePanelDiv">
<asp:Panel ID="Message" runat="server" CssClass="hidepanel">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<asp:Label ID="labelMessage" runat="server" />
</asp:Panel>
</div>
CSS:
.hidepanel {
display: none;
}
隐藏代码:
labelMessage.Text = "Successfully updated."
Message.CssClass = String.Format("alert alert-{0} alert-dismissable", Constants.WarningType.Success.ToString().ToLower())
Message.Attributes.Add("role", "alert")
为此,您需要引用引导链接和jquery
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
下一步将其添加到 Aspx 页面中的 Head 部分:
<style type="text/css">
.messagealert {
width: 100%;
position: fixed;
top:0px;
z-index: 100000;
padding: 0;
font-size: 15px;
}
</style>
<script type="text/javascript">
function ShowMessage(message, messagetype) {
var cssclass;
switch (messagetype) {
case 'Success':
cssclass = 'alert-success'
break;
case 'Error':
cssclass = 'alert-danger'
break;
case 'Warning':
cssclass = 'alert-warning'
break;
default:
cssclass = 'alert-info'
}
$('#<%=ButtonLogin.ClientID %>').append('<div id="alert_div" style="margin: 0 0.5%; -webkit-box-shadow: 3px 4px 6px #999;" class="alert fade in ' + cssclass + '"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a><strong>' + messagetype + '!</strong> <span>' + message + '</span></div>');
}
</script>
在 Cs 代码中
protected void ShowMessage(string Message, MessageType type)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), System.Guid.NewGuid().ToString(), "ShowMessage('" + Message + "','" + type + "');", true);
}
现在在else部分调用Error函数,成功后也可以通过更改Message类型来使用此函数
ShowMessage("Aww, password is wrong", MessageType.Error);
老问题,但对于那些只想要一个简单解决方案的人来说。
您必须有一个带有 ContentPlaceHolder 且 id 为“main”的母版页
创建这个类:
public class BootstrapPage : Page
{
public enum WarningType
{
Success,
Info,
Warning,
Danger
}
public void ShowNotification(string message, WarningType type)
{
var mainContentHolder = Master.FindControl("main") as ContentPlaceHolder;
Panel notificationPanel = new Panel();
{
LiteralControl closeButton = new LiteralControl();
closeButton.Text = "<a href=\"#\" class=\"close\" data-dismiss=\"alert\" aria-label=\"close\">×</a>";
Label notificationMessage = new Label() { Text = message };
notificationPanel.Controls.Add(closeButton);
notificationPanel.Controls.Add(notificationMessage);
}
notificationPanel.CssClass = string.Format("alert alert-{0} alert-dismissable", type.ToString().ToLower());
notificationPanel.Attributes.Add("role", "alert");
mainContentHolder.Controls.AddAt(0, notificationPanel);
}
}
然后让你的WebForm继承BootstrapPage而不是System.Web.UI.Page
需要时随时调用:
ShowNotification("Error: You can't do that!", WarningType.Error);
一段时间以来,我一直在尝试寻找适用于 C# Web 表单的解决方案。我已经尝试过这个解决方案,但是我没有成功。我一直在使用一个简单的 Web 应用程序,但我无法在操作中显示警报。
现在我使用 bootstrap 找到了一个有点功能的解决方案,但并不理想。
content2 的前端代码
div id="liveAlertPlaceholder"></div>
<asp:Button id="liveAlertBtn" class="btn btn-primary" runat="server" Text="Live alert button" OnClick="liveAlertBtn_Click"/>
内容1和脚本的前端代码
<script>
function triggerAlertFunction() {
const alertPlaceholder = document.getElementById('liveAlertPlaceholder');
const wrapper = document.createElement('div');
wrapper.innerHTML = [
`<div class="alert alert-primary" role="alert">`,
` A simple primary alert—check it out! `,
' </div>',
].join('')
alertPlaceholder.append(wrapper);
}
</script>
在后端c# aspx.cs
protected void liveAlertBtn_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "triggerAlertFunction()", true);
}