Диалог jQuery UI не работает в ASP.NET - PullRequest
0 голосов
/ 24 февраля 2010

У меня есть следующая тестовая страница ASPX:

<head runat="server">
    <title></title>
    <script src="js/jquery-1.2.6.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui-1.6.custom.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {

            var dlg = $("#dialog").dialog({
                bgiframe: true,
                autoOpen: false,
                height: 300,
                modal: true,
                buttons: {
                    'Ok': function() {
                        __doPostBack('TreeNew', '');
                        $(this).dialog('close');
                    },
                    Cancel: function() {
                        $(this).dialog('close');
                    }
                },
                close: function() {
                    dlg.parent().appendTo(jQuery('form:first'));
                }
            });
        });
        function ShowDialog() {
            $('#dialog').dialog('open');
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="TreeNew" runat="server" Text="New" 
            OnClientClick="ShowDialog();return false;" onclick="TreeNew_Click"/>
        <asp:Label ID="Message" runat="server"></asp:Label>
        <div id="dialog" title="Select content type">
            <p id="validateTips">All form fields are required.</p>
            <asp:RadioButtonList ID="ContentTypeList" runat="server">
                <asp:ListItem Value="1">Texte</asp:ListItem>
                <asp:ListItem Value="2">Image</asp:ListItem>
                <asp:ListItem Value="3">Audio</asp:ListItem>
                <asp:ListItem Value="4">Video</asp:ListItem>
        </asp:RadioButtonList>
        </div>
    </div>
    </form>
</body>
</html>

Я использую dlg.parent().appendTo(jQuery('form:first')); на функцию закрытия , чтобы получить значения из RadioButtonList .

Работает хорошо, но перед тем, как страница делает PostBack, div "Dialog" перемещается ниже кнопки New. Почему?

Ответы [ 2 ]

2 голосов
/ 24 февраля 2010

Я думаю, что это вызвано тем, что вы звоните:

dlg.parent().appendTo(jQuery('form:first'));

при закрытом обратном вызове. Это переместит диалог. Почему бы вам не вызвать это сразу после создания диалога?

0 голосов
/ 24 февраля 2010

попробуйте чанги $ (function () { в $ (документ) .ready (function () {

также проверьте, где происходит сбой, с помощью встроенной оперы отладчика javascript и FireFox, получившей FireBug ..

...