比如说在一个事件中,如果满足条件A,则进行删除,在删除前需要给出提示,比如:确定要删除吗?
如果满足条件B,则不用提示,或者提示其他的信息,如何做到?

解决方案 »

  1.   

    this.你的控件.Attributes.Add("OnClick"," return confirm('确定吗?');");
      

  2.   

    是这个意思吗?
    this.btnDelete.Attributes.Add("onClick","if(txtUserNameForDel.value==''){alert('用户名不能为空');return false;}else{return confirm('确定删除\"'+txtUserNameForDel.value+'\"吗?')}");
    如果文本框为空则提示"用户名为空"否则弹出确定删除
      

  3.   

    控件添加属性Attributes.Add("OnClick"," return confirm('确定吗?');");
      

  4.   

    //用js来判断是否可以被删除
    function Delete(obj)
    {
    var objs;
    var id = obj.id;
    if(id!="")
    {
    var objs = obj.children;
    }
    if (objs[1].innerText!="1")//条件A
    {
    if (window.confirm("Are you sure to delete all these?"))
    {
    var deleteID='<%=btndelete.ClientID%>';
    window.document.all(deleteID).click();//调用button事件
    }
    }
    else//条件B
    {
    return;
    }
    }//后台绑定,模板列里放过删除button
    private void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
    {
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
    e.Item.ID = "ItemID";
    foreach(DataGridItem di in this.DataGrid1.Items) 
     {
    if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem) 
      { 
       ((Button)di.Cells[2].Controls[0]).Attributes.Add("onclick","Delete(this);"); 
      } 
    }
    }
    }
      

  5.   

    Delete(this)中this指的什么?
      

  6.   

    public void MyList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
            { if((e.Item.ItemType != ListItemType.Header) && (e.Item.ItemType != ListItemType.Footer))
    {
    LinkButton lb = (LinkButton)e.Item.Cells[9].Controls[0]; lb.Attributes.Add("onclick","javascript:if(!window.confirm('确定要删除这条记录吗?')) return false;");
    }
    }        public void MyList_Delete(Object sender,DataGridCommandEventArgs e)
            {
    string nowDSN=ConfigurationSettings.AppSettings["report"];
    OleDbConnection myConnection = new OleDbConnection(nowDSN);
    string sql = "DELETE from lw_repday where repday_id ='" + MyList.DataKeys[(int)e.Item.ItemIndex]+"' and repday_name='"+Session["name"].ToString()+"' ";
    OleDbCommand myCommand = new OleDbCommand(sql,myConnection);
    myConnection.Open();
    try
    {
    myCommand.ExecuteNonQuery();
        if(myCommand.ExecuteNonQuery() > 0)
    {
    Response.Write("<script>alert('删除成功')</script>");
                Response.Write("<script>location.href=location.href</script>");
    }
        else 
    {
                Response.Write("<script>alert('删除失败')</script>");
                Response.Write("<script>location.href=location.href</script>");
    }
    }
    catch (OleDbException ex)
    {
    }
    }
      

  7.   

    我用Ajax试着做了一个能基本满足楼主的要求,抛砖引玉
    如果不知道什么是Ajax那只有自己去学习了。1、照样要先引用ajax.dll。(如果没有,可以上这里去下一个http://zhangyu028.cnblogs.com/Files/zhangyu028/ajax/Ajax.rar)2、在web.config的<system.web>结点下加入
    <httpHandlers>
          <add verb="POST,GET" path="ajax/*.ashx"
              type="Ajax.PageHandlerFactory, Ajax" />
    </httpHandlers> 
    3、WebForm1.aspx代码:
    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication6.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm1</title>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="C#" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <INPUT style="Z-INDEX: 101; LEFT: 248px; POSITION: absolute; TOP: 128px" type="button"
    value="Button" onclick="checkfile();">
    <script language="javascript">
    function checkfile()
    {
    WebForm1.CheckFile(CheckFile_CallBack,true);//webForm1是在服务器端注册的类,你应该改为你的类名
    }
    //回调函数 function CheckFile_CallBack(response){
    var ds = response.value;
    var fg=false;
    if (ds==false)
    {
    fg=confirm("文件已经存在,是否覆盖?");
    if (fg==true)
    {
    WebForm1.BestrowFile();//webForm1是在服务器端注册的类,你应该改为你的类名
    }
    }
    }
    </script>
    </form>
    </body>
    </HTML>
    4、WebForm1.aspx.cs代码:
    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 WebApplication6
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {

    private void Page_Load(object sender, System.EventArgs e)
    {
    Ajax.Utility.RegisterTypeForAjax(typeof(WebForm1));
    // 在此处放置用户代码以初始化页面
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    /// <summary>
    /// 检查是否存在某个文件(这里检查的是是否有D:\text.txt这个文件)
    /// </summary>
    /// <returns>存在则反回flase,否则返回true</returns>
    [Ajax.AjaxMethod()]
    public bool CheckFile()
    {
    if (System.IO.File.Exists("D:\\text.txt"))
    return false;
    else
    return true;
    }
    /// <summary>
    /// 覆盖文件
    /// </summary>
    [Ajax.AjaxMethod()]
    public void BestrowFile()
    {
    //dosomething here
                      string s="1235";//可以在这里设个断点看看是否执行。
    }
    }
    }
      

  8.   

    在DetailView里怎么找到那个Delete按钮?找不到的话没办法添加确认事件属性的。