3

我在网格视图中有一个删除按钮。对于那些不熟悉 asp.net 的人,我的删除按钮输出如下:

<a id="ctl00_cp1_dtgrAllRates_ctl02_lbDelete" 
   class="lb"
   href="javascript:__doPostBack('ctl00$cp1$dtgrAllRates$ctl02$lbDelete','')">
Delete</a>

我有一个确认对话框连接到 gridview 中的所有删除链接,询问用户是否确定要删除。它弹出没有问题,但如果他们单击确认,我想触发回发(href 值)。我不确定如何执行此操作,因为对话框代码与单击的链接是分开的,所以我不能只获取“this”上的 href,例如

var theID = $(this).attr("href");

然后开火。有什么方法可以将href val作为参数传递给对话框代码或其他东西,以便在单击按钮时“确认删除”部分使用它,如果单击“取消”,对话框就会关闭?

这是我的 jQuery 代码:

$(document).ready(function(){
    $("#dialog").dialog({
      bgiframe: true,
      autoOpen: false,
      width: 400,
      height: 200,
      modal: true,
      buttons: {
                'Confirm Delete': function() {
                    $(this).dialog('close');
                    //fire href here preferably
                    },
                Cancel: function(){
                    $(this).dialog('close');
                    }
            }
    });

    $(".lb").click(function(event){
        $("#dialog").dialog('open');
        event.preventDefault();
    });

});

TIA

劳埃德

4

3 回答 3

6

好的,设法解决了。我遇到了这篇文章,它有点帮助:

如何在 Jquery UI 对话框中实现“确认”对话框?

但是,帖子中提供的示例并不能很好地工作,因为对话框的实例化在单击处理程序上不正确。一旦对话框已经被实例化,就有一种不同的方式来设置对话框的属性/选项。所以我的最终代码是:

$(document).ready(function(){

$("#dialog").dialog({
  modal: true,
        bgiframe: true,
        width: 500,
        height: 200,
  autoOpen: false
  });


$(".lb").click(function(e) {
    e.preventDefault();
    var theHREF = $(this).attr("href");


    $("#dialog").dialog('option', 'buttons', {
            "Confirm" : function() {
                window.location.href = theHREF;
                },
            "Cancel" : function() {
                $(this).dialog("close");
                }
            });

    $("#dialog").dialog("open");

});

});

希望这对其他人有帮助。Gurdas,谢谢你的帮助,它肯定让齿轮转动了。:)

于 2009-11-18T21:33:20.370 回答
3

可能有一种更简洁的方法可以做到这一点,但我认为您必须获取您单击的链接的上下文才能在对话框的构造中使用其 href;然后即使在使用该参数构建对话框之后也可以打开对话框;我会考虑更多关于更有效的方法,但希望这能让一些齿轮转动......

 $(".lb").click(function(event){    

      var theHREF = $(this).attr("href");



       $("#dialog").dialog({
      bgiframe: true,
      autoOpen: false,
      width: 400,
      height: 200,
      modal: true,
      buttons: {
                'Confirm Delete': function() {

                    //href fired here
                    window.location.href= theHREF; 

                    },
                Cancel: function(){
                    $(this).dialog('close');
                    }
            }    

    }).dialog('open');
于 2009-11-18T04:48:08.787 回答
0

前段时间,我建立了一个 Web 控件,以一种标准的、集成的方式来做到这一点。看一看。

于 2011-04-25T18:55:34.403 回答