日期:2014-05-19  浏览次数:20394 次

GridView删除问题,在线等!
照网上的做法,删除的时候弹出“确认删除”对话框,对话框是出来了,可是不管点击“确认”还是“取消”,gdvTest_RowDeleting事件都会被触发,Delete(id);都会被执行,这是怎么回事啊?我只想“确认”的时候删除,“取消”的时候不删除。
protected   void   gdvTest_RowDataBound(object   sender,   GridViewRowEventArgs   e)
        {
                e.Row.Cells[5].Attributes.Add( "onclick ",   "return   confirm( '确定删除( "   +   e.Row.Cells[0].Text   +   ")吗? '); ");
        }

        protected   void   gdvTest_RowDeleting(object   sender,   GridViewDeleteEventArgs   e)
        {
                int   id   =   int.Parse(gdvTest.DataKeys[e.RowIndex].Value.ToString());
                Delete(id);
        }

------解决方案--------------------
confirm()函数返回值是否正确(OK = true;Cancel = false)?
------解决方案--------------------
我也遇到过,有可能是浏览器问题,
同样的代码,在自己的机子上不行.
在别人的机子上就可以.
楼主可以试试.
------解决方案--------------------
在页面加载的时候给在摸板列里的删除按钮加载属性
btnAddNewDepart.Attributes.Add( "onclick ", "javascript:return confirm( 'ok? ') ");
再试下把ok了呵呵!
------解决方案--------------------
有可能是浏览器的问题.
------解决方案--------------------
有可能是浏览器问题
同意cpp2017(慕白兄) 的
------解决方案--------------------
可以把按钮列转模板列后再试试,应该没问题的
------解决方案--------------------
估计cells【5】是个按钮(我下面的代码认为是button),其次你的rowdatabound里面怎么没有加个判断-判断是否是数据行
而不是header或footer

你首先在rowdatabound加个判断,类似如下
void grdSubject_RowDataBound(object sender, GridViewRowEventArgs e)
{
//判断是否是DataRow
if (e.Row.RowType == DataControlRowType.DataRow)
{
//当点击删除按钮时激活提示
Button btn = (Button)e.Row.Cells[5].Controls[0];
btn.Attributes.Add( "onclick ", "javascript:return confirm( '你确认要删除:\ " " + e.Row.Cells[1].Text + "\ "吗? ') ");
}
}
------解决方案--------------------
http://www.cnblogs.com/xiongeee/archive/2006/12/29/606638.aspx
看这个blog
------解决方案--------------------
清除缓存试试
------解决方案--------------------
楼主是不是 又是安装了 FlashGet 1.80版本 哦?
这样的话 会 导致 IE中 JS 永远返回 true
更新到1.82就没问题了
------解决方案--------------------
楼主是不是 又是安装了 FlashGet 1.80版本 哦? 这样的话 会 导致 IE中 JS 永远返回 true 更新到1.82就没问题了 ====================== 很多人是有遇到这个问题
------解决方案--------------------
mark