一个很适用的功能,附源代码(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);
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值