不应该删除记录

时间:2013-05-01 13:10:51

标签: c# javascript gridview webforms

我正在尝试显示一个确认框,它与Confirm完美配合,但不能与我的自定义消息框一起使用,

这有效,

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {

        LinkButton link = (LinkButton)e.Row.Cells[4].Controls[2];
        if (link != null)
        {
            link.OnClientClick = "return confirm('Do you really want to delete?')";
        }
    }
}

但是当我把它改为

link.OnClientClick = "ConfirmationBox()";


 function ConfirmationBox() 
    { 
    $.blockUI({ message: $('#question'), css: { width: '275px' } 
    }); 
    }

它会显示消息框,但它也会删除我的记录:'(

仍然困惑?看看这个,

Command field showing messagebox

修改

<script type="text/javascript">
 $(document).ready(function() { 

 $('#yes').click(function() { 
        $.unblockUI(); 
        return true;
    });

    $('#no').click(function() { 
        $.unblockUI(); 
        return false; 
    }); 
}); 
 </script>

3 个答案:

答案 0 :(得分:2)

查看两个OnClientClick事件之间的差异。正常工作的那个返回一个值,而那个没有的那个。

单击该按钮时,将执行按钮操作。还会执行点击操作。但是,如果单击操作返回false,则取消按钮的操作。改变

link.OnClientClick = "ConfirmationBox()";

link.OnClientClick = "return ConfirmationBox()";
如果未确认操作,

并使ConfirmationBox()返回false。

答案 1 :(得分:1)

第二个选项很可能不会返回false,这就是为什么您的记录在任何情况下都会被删除的原因。您可以通过将其更改为:

来验证它
function ConfirmationBox() 
    { 
      $.blockUI({ message: $('#question'), css: { width: '275px' }}); 
      return false;
    }

这不会阻止删除记录,但也不会让你删除它。你需要能够返回UI控件结果的东西。

您还应该修改链接:

link.OnClientClick = "return ConfirmationBox()";

答案 2 :(得分:0)

正如吉姆所说,你必须拥有

link.OnClientClick = "return ConfirmationBox()";

ConfirmationBox应始终返回false。您还需要一个按钮来执行删除操作,如果用户按下是按钮,则需要触发该按钮的单击事件。我希望这是有道理的。

相关问题