Asp.net中,有的时候在执行某个操作的时候希望能够弹出一些信息框:alert弹出的警告信息框,confirm弹出的包含确认和取消两个按钮的信息框,以及prompt弹出的输入数据的对话框。
这里有两种方法来实现。
一种是采用javascript函数来实现,代码将应用与.aspx文件的源代码(html语言)中,在HTML控件中调用javascript函数来实现Alert、Confirm、Prompt。
另一种则是在web窗体的.aspx.cs文件中使用。alert和prompt可以用Response.Write()来直接使用,Confirm则需要将其加入到Web服务器控件的属性上。下面我们就分别针对这两种方法来举几个例子。
1、我们创建两个HTML按钮来分别调用javascript函数,一个按钮用来弹出confirm信息框,另一个用来弹出prompt信息框,操作结果用alert弹出。
Code
<html>
<head>
<title></title>
<script language="ecmascript">
<!--
function delCheck()
{
var flag=window.confirm("确实要删除吗?");
if(flag==true)
alert("已经删除!");
}
function dataCheck()
{
var data=window.prompt("输入一个1-10之间的数","7");
if(data!=null)
alert("你输入的是:"+data);
}
//-->
</script>
</head>
<body>
<form id="form1">
<input name="del" type="button" id="Button2" value="删除记录" onclick="delCheck()">
<input name="in" type="button" id="in" value="输入数据" onclick="dataCheck()">
</form>
</body>
</html>
2、在ASP.NET的.aspx.cs文件中使用:
(1)Alert的使用:
Response.Write("<script>alert('密码不正确!')</script>");
(2)Confirm的使用:点击Button3按钮的是否,弹出confirm对话框,选择"确定"的时候则开始执行相应的按钮操作。
在page_load添加如下代码:
Code
protected void Page_Load(object sender, EventArgs e)
{
Button3.Attributes.Add("onclick ", "return confirm( '确认要修改吗?');");
}
protected void Button3_Click(object sender, EventArgs e)
{
//Button3的按钮操作,自行定义
Response.Write("您选择的是确定操作!");
}
(3)Prompt的使用:
Response.Write("<script> var result=window.prompt('请输入新文件名:)' , 'ABC'); if(result!=null) alert('你输入的是'+result);</script>");
点击button弹出询问框的例子:
Code
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script>
function ask()
{
return confirm("确定?取消?");
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:Button ID="ButtonAsk" runat="server" onclick="ButtonAsk_Click"
Text="询问是否" />
</form>
</body>
</html>
Code
protected void Page_Load(object sender, EventArgs e)
{
this.ButtonAsk.Attributes.Add("onclick", "return ask()");
}
protected void ButtonAsk_Click(object sender, EventArgs e)
{
//执行删除操作..
Response.Write("删除成功");
}
GridView中实现删除时询问功能:
Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="testGridView.aspx.cs" Inherits="testGridView" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:testConnectionString %>"
SelectCommand="SELECT [CustomerID], [CompanyName], [ContactName], [City], [Country] FROM [Customers]" DeleteCommand="delete from Customers where CustomerID = @CustomerID"
>
<DeleteParameters>
<asp:Parameter Name="CustomerID" Type="String" />
</DeleteParameters>
</asp:SqlDataSource>
</div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" DataSourceID="SqlDataSource1"
DataKeyNames="CustomerID" onrowdeleting="GridView1_RowDeleting"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
</form>
</body>
</html>
Code
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
public partial class testGridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
/**////这个方法可以在删除前做一些操作,如取值、判断,乃至取消删除的动作
//string id = GridView1.DataKeys[e.RowIndex].Value.ToString();
//Page.RegisterStartupScript("","<script>alert('" + id + "');</script>");
//e.Cancel = true;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
{
TableCell cl = e.Row.Cells[0];
LinkButton lb = (LinkButton)cl.Controls[0]; //DataControlLinkButton
lb.Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
}
}
}
}
或者先把你的删除按钮的那一列转化为模板列,然后再模板编辑里找到删除按钮,
在你的删除按钮的OnclientClick属性中添加:return confirm("确定删除?")
OnClientClick="return confirm('确定删除吗?');"