-1

我正在尝试显示一个确认框,它与我的自定义消息框完美搭配,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' } 
    }); 
    }

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

还迷茫吗?看一下这个,

显示消息框的命令字段

编辑

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

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

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

3 回答 3

2

看看这两个OnClientClick事件之间的区别。正常工作的会返回一个值,而不能正常工作的则不会。

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

link.OnClientClick = "ConfirmationBox()";

link.OnClientClick = "return ConfirmationBox()";

ConfirmationBox()如果未确认该操作,则返回 false 。

于 2013-05-01T13:18:17.410 回答
1

第二个选项很可能不会返回false,这就是您的记录无论如何都会被删除的原因。您可以通过将其更改为来验证它:

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

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

您还应该修改链接:

link.OnClientClick = "return ConfirmationBox()";
于 2013-05-01T13:14:27.520 回答
0

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

link.OnClientClick = "return ConfirmationBox()";

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

于 2013-05-01T14:11:37.913 回答