this.BTDelete.Attributes.Add("onclick", "javascript:return confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?');");为什么不管我点确定还是取消都不会执行删除呢?

解决方案 »

  1.   

    如果是.Net 2.0的话:
    <asp:Button ID="btnDelete" runat="server" Text="删  除" OnClientClick="return confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?')" OnClick="btnDelete_Click" />
      

  2.   

    如果是asp:Button和asp:ImageButton的话,你的代码应该没问题
    如果是asp:LinkButton的话,是无效的
      

  3.   

    <asp:Button ID="btnDelete" runat="server" Text="删  除" OnClientClick="return confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?')" OnClick="btnDelete_Click" />
    还是不行
      

  4.   

    OnClick="btnDelete_Click"  其中的btnDelete_Click对应后台的删除事件:
    protected void btnDelete_Click(object sender, EventArgs e)
    {
    //删除操作
    }
    你在这个函数里面加一些断点,看点击“确定”后有没有进入到这个函数执行
    看到底是哪里出的问题
      

  5.   

    我调试过了,完全没有进入Delete这个函数,我还是头一次碰到这样的问题,以前都好的
      

  6.   

    <asp:Button ID="btnDelete" runat="server" Text="删  除" OnClientClick="return confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?')" OnClick="btnDelete_Click" />当你点击“确定”后就进到函数btnDelete_Click:
    protected void btnDelete_Click(object sender, EventArgs e)
    {
    //删除操作
    }
    我想应该是你的删除操作有问题
    在这个函数里面加断点调试一下
      

  7.   

    你的这个页面的Page_Load函数有问题吗?
    你在Page_Load函数里面夹一个断点,按F11键
    看点击确定后能执行到哪里
      

  8.   

    这个是Pageload 
    protected void Page_Load(object sender, EventArgs e)
        {
            this.InitTitles();
            if (!Page.IsPostBack)
            {
                try
                {
                    this.txtSDT.DateTimeTextBox.ID = "1";
                    this.txtEndDT.DateTimeTextBox.ID = "2";
                    //MessageBox.MessageBox.ShowConfirm(this.BTDelete, "删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?");
                    //this.BTDelete.Attributes.Add("OnClientClick", "javascript:return confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?');");
                    this.BinddrpInfoClass();
                    this.ImageSelector1.FieldRequired = this.ImageSelector2.FieldRequired = this.PathSelector1.FieldRequired = this.PathSelector2.FieldRequired = true;
                    this.ImageSelector1.FileManagerVirtualPath = this.ImageSelector2.FileManagerVirtualPath = ResMan.GetFolderVirtualPath(Constant.GetCMSTemplateFolder());//模板文件
                    this.PathSelector1.FileManagerVirtualPath = ResMan.GetFolderVirtualPath(Constant.GetCMSContentFolder()); //内容页面存放位置
                    this.PathSelector2.FileManagerVirtualPath = ResMan.GetFolderVirtualPath(Constant.GetCMSResourseFolder()); //资源文件存放位置
                }
                catch (Exception ex)
                {
                    ExceptionProcess(ex);
                }
            }
        }这是删除:
     protected void BTDelete_Click(object sender, EventArgs e)
        {
            try
            {
                if (!(this.PortalID == -1) && !(this.PortalParentID == -1) && !(this.ThisParentID == -1) && !(this.ChannelID == -1))
                {
                    cqut_CMS_Chanel channelCtl = new cqut_CMS_Chanel();
                    DBProvider db = new DBProviderFactory().Creater(Constant.GetConnStr());
                    db.ExecuteSpNonQuery("p_cqut_CMS_DeleteChannelByPID",this.ChannelID);
                    channelCtl.Delete(this.ChannelID);
                    MessageBox.MessageBox.Show(this.Page, "删除操作成功");
                }
                else
                {
                    MessageBox.MessageBox.Show(this.Page,"当前节点不能进行删除操作");
                }
            }
            catch (Exception ex) { ExceptionProcess(ex); }
        }
    还有就是我这个是用户控件(ascx),多谢指教:)
      

  9.   

    那两句注释掉的没关系,我直接加到前台了
    <asp:Button ID="BTDelete" runat="server" CssClass="FormButton" OnClick="BTDelete_Click"  OnClientClick="javascript:return confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?');"  CausesValidation="False" TabIndex="2" UseSubmitBehavior="False" /></td>
      

  10.   

    可能是UseSubmitBehavior属性的问题吧,把它改成True看看UseSubmitBehavior="True"
      

  11.   

    UseSubmitBehavior="True"
    也不行,新建了个页面也不行,看来可能是我里面的其他代码影像到了
      

  12.   

    this.BTDelete.Attributes.Add("onclick", "if(!confirm('删除该栏目将删除该栏目下的所有子栏目,确定要删除该栏目吗?')) return false;");
      

  13.   

    但你给按钮设置onclick脚本,asp.net在render的时候是把脚本放在自动产生的触发 _doPostback(...) 的脚本的前边。按照你的那种写法,不论confirm是否成功,都无法触发 doPostback(...)。
      

  14.   

    感谢sp1234,zhjg136(天星)和大家, 问题解决了,看来我犯的错误是没有去理解问题的原理,只停留在表面现象了,呵呵,反省
        分不多,意思下:)