2011-07-18 6 views
0

動作しません。私はこのようにUIのダイアログを開きます。jqueryのUIダイアログクローズした後、ページ全体のポストバックが

var $dialog = jQuery('#dialog');  
    $dialog.load('mySite.aspx'); 
    $dialog.dialog({ 
     autoOpen: false, 
     title: 'Add New Contact Personel', 
     modal: true, 
     height: 350, 
     width: 400, 
     show: 'puff', 
     hide: 'puff', 
     close: function (event, ui) { 
      $dialog.html(''); 
      $dialog.dialog('destroy'); 
     } 
    }); 
    $dialog.dialog('open'); 

と私はに接続されていない他のすべてのボタン、右上corentにクロスを使用して、これを閉じた後、 UIダイアログが機能しません。例えば、下のgridviewのlinkBut​​tonが意味を失ってしまいました.Firefoxでは動作しません。ページにクロムのリダイレクトがありますが、ページをリフレッシュするとすべてがうまくいきますもう一度UIダイアログを開くと、他のすべてのリンクは再び機能しません。

<asp:GridView ID="userGridView" runat="server" 
      AutoGenerateColumns="False" 
      GridLines="None" 
      AllowPaging="true" 
      DataKeyNames="UserId" 
      OnRowCommand="UserGridViewRowCommand"> 
      <Columns> 
       <asp:BoundField DataField="UserId" Visible="false"/> 
       <asp:BoundField DataField="FirstName" HeaderText="First Name" /> 
       <asp:TemplateField HeaderText="Actions" HeaderStyle-Width="75px" ItemStyle-HorizontalAlign="Center" > 
         <ItemTemplate> 
          <asp:LinkButton ID="ChartLinkBtn" ToolTip="go to EAS (user page)" CommandArgument='<%# Eval("UserId") %>' CommandName="User" runat="server"><img src="../Styles/icons/chart.png" style="border:0px" alt="text"/></asp:LinkButton>&nbsp;&nbsp; 
          <asp:LinkButton ID="DeleteLinkBtn" ToolTip="delete this user" CommandArgument='<%# Eval("UserId") %>' CommandName="Delete" runat="server"><img src="../Styles/icons/delete.png" style="border:0px" alt="text"/></asp:LinkButton> 
         </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 
+0

javascriptエラーが発生しますか? – Oded

+0

いいえ、Firefoxではただのものではありません。すべてのリンクが単純ではなく、クロークすることはできません。各リンクは前回のUIダイアログのコンテンツを開きます – kosnkov

+0

mySite.aspxのjqueryへの参照があります。ダイアログコンテンツ内のjqueryの新しいコピーを参照して、既存のすべてのイベントを削除します。 – BonyT

答えて

2

もしこれが完全なポストバックを強制しないのはなぜですか?

close: function (event, ui) { 
     $dialog.html(''); 
     $dialog.dialog('destroy'); 
     __doPostBack(); //to perform a full postback 
    } 

または(ジャバスクリプトタグ内にこれを入れて)これを試して...

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (evt, args) { 
    var myDiv = $("#dialog").dialog({ autoOpen: false, modal: true, open: function (type, data) { 
     $(this).parent().appendTo("form"); 
    } 
    }); 
}); 

歓声!

関連する問題