如题.代码如下:
Response.Write ("<script language='javascript'>function confirm_delete() {confirm('您确实要删除此项目吗?');</script>") ; //执行删除操作,操作完成以后回到开始的页面
try
{
DeleteNumber(Request.QueryString ["numbers"]) ;
}
catch
{
Response.Write ("<script language='javascript'>alert('删除记录失败!');</script>") ;
} Response.Write ("<script language='javascript'>alert('删除记录成功!');</script>") ;
Response.Redirect ("Soft2_1.aspx") ;
Response.Write ("<script language='javascript'>function confirm_delete() {confirm('您确实要删除此项目吗?');</script>") ; //执行删除操作,操作完成以后回到开始的页面
try
{
DeleteNumber(Request.QueryString ["numbers"]) ;
}
catch
{
Response.Write ("<script language='javascript'>alert('删除记录失败!');</script>") ;
} Response.Write ("<script language='javascript'>alert('删除记录成功!');</script>") ;
Response.Redirect ("Soft2_1.aspx") ;
少了一个右括号}.
放在里面也可以吧
如果控件是在DATAGRID中的控件的话请联接我的BLOG:http://blog.csdn.net/wd_terry/
之前几位高手提出的方法很好,尤其当你的这段程序是写在XXX_Click(...)事件中的时候,添加Del.Attributs.Add("onclick","return confirm('你确定要删除吗?');")可以很方便的解决你的问题.但是如果在你的:Response.Write ("<script language='javascript'>function confirm_delete() {confirm('您确实要删除此项目吗?');</script>") ;之前还有代码,那么就不行了,因为服务器端在执行的过程中不会因为有一句confirm就会停下来等你去做交互,而是把你后边的代码都执行了才一并返回到客户端,因此这样写是不行的(肯能是我水平太低不知怎么做)。
如果你的Response.Write 夹在一段服务器端代码中间,我这里有种笨方法:
string script = "<script lanuage='javascript'>check();</scriptPage.RegisterStartupScript(Guid.NewGuid().ToString(),script);>";(调用一个客户端时间,有客户端之间来提示确认信息)
到这里服务器端方法结束在客户端;
function check()
{
var all = window.confirm("您确实要删除此项目吗?");
var obj = document.getElementById("txtAll");
if (all )
{
document.getElementById("btn1").disabled = false;
document.getElementById("btn1").click();
}
}
这里btn1是一个隐藏的按钮,有这个按钮再去调用一个服务器端的Click事件,这时你代码中剩下的部分就可以放在Click事件中了,这样做就把交互动作留在了客户端,客户端、服务器端只作自己该做的事,我个人觉得把交互的Script脚本写在客户端一是风格不好,最重要的还是不知道什么时候会不能正确执行,这都是我的一面之词,目前我还没有找到更好的做法,希望有大虾能指出我的错误,给出一个好的结决方法,我在这里和搂主一并谢了!
我看了你的BLOG,
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
HyperLink Button1=(HyperLink)e.Item.FindControl("删除");
if(Button1!=null)
{
Button1.Attributes.Add("onclick","return confirm('删除后将不可恢复,是否继续?');");
}
}
我的那个绑定的按钮为HyperLink按钮,然后那个FindControl函数里的参数为按钮的文本.运行没有错误,但是提示对话框还是不能出来,是不是还要哪个地方要注意的还是哪个地方错了呢?
先把这一行注释掉,然后再试一下。
那该怎样在提交之前在客户端进行判断呢?
if(!this.IsPostBack)
{
this.Button1.Attributes.Add("onclick","return(confirm('确认提交吗?'));");
}
那如果我没有按钮事件该怎么办呢,那是不是就没有什么办法达到这样的效果了?
this.myGrid.DataSource = 获取到的数据集;
this.myGrid.DataKeyField = "usr_id";
this.myGrid.DataBind();//绑定之后马上循环,为删除按钮做删除事件(注意,我的删除按钮是在最后一列)
//前提是你的删除按钮就是自动生成的"按钮列"才行,不能是模板列
for(int i=0;i<this.myGrid.Items.Count;i++)
{
LinkButton linkdelete = (LinkButton)this.myGrid.Items[i].Cells[this.myGrid.Columns.Count-1].Controls[0];
linkdelete.Attributes.Add("onclick","return(confirm('确认删除吗?'));");
}