3

グリッドビューに削除ボタンがあります。asp.net に慣れていない人のために、私の削除ボタンの出力は次のようになります。

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

グリッドビューのすべての削除リンクに接続された確認ダイアログがあり、ユーザーが本当に削除するかどうかを尋ねます。ポップアップは問題ありませんが、確認をクリックするとポストバック (href 値) を起動したいと思います。ダイアログコードがクリックされたリンクとは別であるため、これを行う方法がわからないため、「これ」の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();
    });

});

ティア

ロイド

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");

});

});

これが他の誰かに役立つことを願っています。グルダス、あなたの助けに感謝します。それは間違いなくギアを回しました. :)

于 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 に答える