Форма ModalDialog не работает хорошо - PullRequest
1 голос
/ 29 марта 2012

У меня есть страница приложения. Я хочу нажать кнопку, чтобы открыть диалоговое окно, которое находится на другой странице приложения. Диалог появляется и быстро исчезает в воздухе. Конечно, это не отображало правильный контекст страницы. Я использую SharePoint 2010 и Visual Studio 2010. Я также использовал главную страницу. Спасибо.

<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
<link href="../Stylesheet.css" rel="stylesheet" type="text/css" />
<SharePoint:ScriptLink runat="server" Name="sp.js" OnDemand="true" LoadAfterUI="true" Localizable="false" />
 </asp:Content>
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<div id="wrap">
    <div id="nav">
        <asp:Button ID="Edit" runat="server" Text="Edit" OnClientClick="javascript:Edit_Click()">

        </asp:Button> 
        <script type="text/javascript">
            function Edit_Click() {
                              SP.SOD.executeFunc("sp.js");
                              var options = SP.UI.$create_DialogOptions();

                              options.title = "My Dialog Title";
                              options.width = 400;
                              options.height = 600;
                              options.url = "/_layouts/Admin/test.aspx";
                              SP.UI.ModalDialog.showModalDialog(options);

                        };


            </script>
    </div>

Ответы [ 2 ]

1 голос
/ 29 марта 2012

Причина, по которой диалоговое окно появляется и затем вызывает разочарование, заключается в том, что ваша кнопка asp: выполняет обратную передачу.

Попробуйте использовать

<asp:Button ID="Edit" runat="server" Text="Edit" OnClientClick="javascript:Edit_Click(); return false;" />

для предотвращения обратной передачи.

0 голосов
/ 29 марта 2012

Попробуйте это, братан (..)

function Edit_Click() {
     $("#app_setup_wizard_container").dialog({
        autoOpen:false,
        height: 'auto',
        width: 'auto',
        resize:false,
        modal: true,
        position: [1230,220],
        url = "/_layouts/Admin/test.aspx";
        open: function(event, ui) {
            var $dialog  = $(event.target);
            var position = $dialog.dialog('option', 'position');
            $dialog.closest('.ui-dialog').css({
                left: position[0],
                top:  position[1]
            });
        },
        buttons: {
            Cancel: function() {
                $(this).dialog("close");
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...