Диалог Jquery UI с триггером кнопки asp на панели обновления - PullRequest
0 голосов
/ 04 октября 2011

У меня проблема с диалоговым окном Jquery Modal, вызываемым с помощью кнопки на панели обновления.

вот идеи ..

Javascript, используемый для открытия модального диалогового окна Jquery на странице aspx.

<script type='text/javascript'>
    function openModalDiv(divname) {
        $('#' + divname).dialog({ 
            autoOpen: false, 
            bgiframe: true, 
            closeOnEscape: true, 
            modal: true, 
            resizable: false, 
            height: 'auto', 
            buttons: { Ok: function () { closeModalDiv(divname) } },
            open: function (event, ui) { jQuery('.ui-dialog-titlebar-close').hide(); }
        });
        $('#' + divname).dialog('open');
        ('#' + divname).parent().appendTo($('form:FrmSearch'));
        $('#' + divname).css('overflow', 'hidden')
    }

    function closeModalDiv(divname) {
        $('#' + divname).dialog('close');
    }
</script>

кнопка на странице aspx ..

<asp:UpdatePanel ID="upDialogs" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnOpenDialog" runat="server" Text="Open Dialog" onclick="btnOpenDialog_Click" />
    </ContentTemplate>
</asp:UpdatePanel>

Div, который должен вызываться из кода через javascript ..

<div id="ErrorDiv2" title="Error" style="visibility:hidden">
    <p><span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>Please select an option among the results and try again!</p>
</div>

Наконец код позади ..

protected void btnOpenDialog_Click(object sender, EventArgs e)
{
    if (ProfileID == null)
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorDivOpen", "document.getElementById('ErrorDiv2').style.visibility = 'visible';", true);
        Page.ClientScript.RegisterStartupScript(this.GetType(), "ErrorDivShow", "openModalDiv('ErrorDiv2');", true);  
    }
}

Теперь вопрос подробно .. Без панели обновления модальное диалоговое окно появляется очень хорошо, но делает полный пост обратно ..

Я хочу вернуть только частичную запись и, следовательно, использую панель обновления ..

Ниже приведены решения, которые я попробовал ..

  1. Добавлена ​​панель обновления для существующего div, dint work.
  2. добавлена ​​панель обновления вместе с runat = "Server" для div, все еще не работает ..

Может ли кто-нибудь помочь мне с возможными решениями?

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Спасибо за ваш быстрый ответ, но я нашел другое решение.

Я добавил параметры панели обновления и runat в Div.

<asp:UpdatePanel ID="upErrorDiv" runat="server"><ContentTemplate>
    <div runat="server" id="ErrorDiv2" title="Error" style="visibility:hidden">
        <p><span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>Please select an option among the results and try again!</p>
    </div>
</ContentTemplate></asp:UpdatePanel>

Изменил код позади как.

if (ProfileID == null)
{
    ScriptManager.RegisterStartupScript(ErrorDiv2,this.GetType(), "ErrorDivOpen", "document.getElementById('ErrorDiv2').style.visibility = 'visible';", true);
    ScriptManager.RegisterStartupScript(ErrorDiv2,this.GetType(), "ErrorDivShow", "openModalDiv('ErrorDiv2');", true);  
    return;
}
0 голосов
/ 04 октября 2011

Не могли бы вы попытаться внедрить javascript в элемент управления Literal внутри UpdatePanel, или просто зарегистрировать его в ClientScriptManager?

Kris

...