2016-07-14 3 views
0

Это уже было задано многими пользователями SO и также имеет решения. Но никто из них не работает для меня.Сделайте обратную передачу в диалоговом окне интерфейса jQuery

В ASPX

<asp:Button ID="btnConfirm" ClientIDMode="Static" runat="server" Text="Confirm" OnClick="btnConfirm_Click"/> 

<script type="text/javascript"> 
    $(function inPageLoad() { 
     Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function() { 

      //Confirmation Dialog 
      $(document).on('click', '#btnConfirm', function (e) { 
       e.preventDefault(); 
       $('<div></div>').appendTo('body') 
        .html('<div><h6>Yes or No?</h6></div>') 
        .dialog({ 
         modal: true, title: 'message', zIndex: 10000, autoOpen: true, 
         width: 'auto', resizable: false, 
         buttons: { 
          Yes: function() { 
           $(this).dialog("close"); 
           __doPostBack('btnConfirm',''); 
          }, 
          No: function() { 
           $(this).dialog("close"); 
          } 
         }, 
         close: function (event, ui) { 
          $(this).remove(); 
         } 
        }); 
      }); 
     }); 
    }); 

    $(document).ready(inPageLoad); 

</script> 

В aspx.cs

protected void btnConfirm_Click(object sender, EventArgs e) 
{ 
    SomeFunction(); 
} 

Я хочу сделать постбэк (перейти к событию 'btnConfirm_Click' в коде), если клик 'Да'. Несмотря на то, что диалог всплывает хорошо, он не делает обратной передачи. Вся помощь ценится!

+0

Вы проверили любой яваскрипта ошибки? – Sami

+0

Вы отлаживаете его и подтверждаете, что 'doPostBack' действительно выполняется? Любые ошибки в консоли? – Andrei

+0

@Andrei, да, есть ошибка 'inPageLoad не определена'. Но так как диалог всплыл хорошо, я проигнорировал это. Это причина? – Isuru

ответ

1

вместо __doPostBack('btnConfirm','');

Yes: function() { 
    $("[id*=btnConfirm]").click(); 
}, 

ОБНОВЛЕНИЕ МОЙ ОТВЕТ

Возьмите другую кнопку, с дисплеем ни одно из свойств и вызвать эту кнопку

CSS

.hidden 
{ 
display:none; 
} 

ASPX

<asp:Button id="btnhidden" runat="server" onclick="btnhidden();" cssClass=hidden/> 

Javascript

Yes: function() { 
     $("[id*=btnhidden]").click(); 
    }, 
+0

. Это снова вызовет диалог. – Isuru

+0

какой эффект произойдет, когда кнопка вызывает триггер? –

+0

Затем из-за того, что событие клика btnConfirm запускается снова, оно снова приходит к '$ (document) .on ('click', '#btnConfirm', function (e) {}'. Становится повторяющимся. – Isuru

Смежные вопросы