`
jzhua2006
  • 浏览: 299717 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

一个很适用的功能,附源代码(ASP.NET)

阅读更多
在学习ASP.NET的时候,由于ASP.NET是个事件驱动的语言,即事件是靠后台来实现的,可能大家遇见过一个这样的问题:

比如一个BUTTON,是服务器端控件,当要在执行操作前(比如删除数据、更新数据等),要先弹出一个对话框:比如“是否要删除数据”等之类的描述,在JSP中这个是很好实现的,但是在ASP.NET后台是不好实现的,只有通过事件回调到客户端,ASP.NET有些很好的方法:Page.RegisterStart或Page.RegisterClientScriptBlock

它的后台事件是:

private void Button_Click(object sender, System.EventArgs e)
{
   if(弹出框(是否要删除数据))
    {
       确定删除代码     }
    else
    {
       不删除代码
     }
}

用这样的方法是实现不了的

所以我想了一个解决方案:

页面上放2个按钮,第一个用来实现(弹出对话框),第二个用来实现操作

当第一个选中了对话框中的“确定”后,程序就执行第二个按钮的事件。否则不执行操作。
代码如下:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace HTConfirm
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{   
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Button2.Click += new System.EventHandler(this.Button2_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write("删除了!");
}

#region//确认对话框
/// <summary>
/// 服务器端弹出confirm对话框
/// </summary>
/// <param name="str_Message">提示信息,例子:"您是否确认删除!"</param>
/// <param name="btn">隐藏Botton按钮Id值,比如:btn_Flow</param>
/// <param name="page">Page类</param>
public void Confirm(string str_Message,string btn,Page page)
{
page.RegisterStartupScript("","<script> if (confirm('"+str_Message+"')==true){document.forms(0)."+btn.Trim()+".click();}</script>");
}
#endregion

private void Button2_Click(object sender, System.EventArgs e)
{
this.Confirm("要删除吗?","Button1",this);
}
}
}

  • HTConfirm.rar (15.2 KB)
  • 描述: 这个就是代码!
  • 下载次数: 3
4
4
分享到:
评论
2 楼 jzhua2006 2008-03-07  
我试一试哦!哈哈!谢谢流言哦!
1 楼 yiketudou 2008-03-06  
最简方法:页面的button外面加一个“span”标签即可:<span onclick="return confirm('确实要删除?')">此处服务器button</span>

相关推荐

Global site tag (gtag.js) - Google Analytics