не могу закрыть asp.net 4 ajax ModalPopupExtender - PullRequest
0 голосов
/ 09 сентября 2011

Создано простое приложение для сохранения данных.Я хочу:
1. Подтвердить, что пользователь хочет сохранить данные (ConfirmButtonExtender)
2. Уведомить пользователя об успешном сохранении данных (ModalPopupExtender с панелью)

код aspx:

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="PanelSaveConfirmPopup"
    BehaviorID="ModalSaveConfirm" TargetControlID="PanelSaveConfirmPopup" DropShadow="true"
    CancelControlID="btnSaveConfirmedPopupOk">
</asp:ModalPopupExtender>
<asp:Panel ID="PanelSaveConfirmPopup" runat="server" Style="display: none;" BorderColor="Black"
    BorderStyle="Solid" BorderWidth="1px" Width="300px" Height="150px" BackColor="White"
    ForeColor="Black">
    <table width="99%">
        <tr>
            <td height="30">
            </td>
        </tr>
        <tr>
            <td align="center">
                <asp:Label ID="Label19" runat="server" Text="Your data has been saved."></asp:Label>
            </td>
        </tr>
        <tr>
            <td height="45">
            </td>
        </tr>
        <tr>
            <td align="center">
                <asp:Button ID="btnSaveConfirmedPopupOk" runat="server" Text="Okay" />
            </td>
        </tr>
    </table>
</asp:Panel>
<asp:Button ID="btnSave" runat="server" Text="Save" />
<asp:ConfirmButtonExtender ID="btnSave_ConfirmButtonExtender" runat="server" ConfirmText="Are you sure you want to save this?"
    Enabled="True" TargetControlID="btnSave">
</asp:ConfirmButtonExtender>
</asp:Content>

код позади:

Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub btnSave_Click(sender As Object, e As System.EventArgs) Handles btnSave.Click
    ' Pretend to save data here
    ModalPopupExtender1.Show()
End Sub
End Class

Я получаю оба всплывающих окна - моя проблема в том, что кнопка закрытия на панели ModalPopupExtender не закрывает modalpopup.Есть идеи?Спасибо!

1 Ответ

0 голосов
/ 09 сентября 2011

Я получил несколько подсказок по ссылке, которая заставила его работать.В ближайшее время опубликует рабочий код (думаю, мне нужно подождать 24 часа, чтобы ответить на мой собственный вопрос).Хитрость заключалась в создании фиктивной кнопки.Пустая кнопка должна быть asp.net visible = true, но ее можно скрыть в html с помощью Style = "display: none"

Рабочий код:

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="false"
CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:Button ID="btnSave" runat="server" Text="Save" />
<asp:ConfirmButtonExtender ID="btnSave_ConfirmButtonExtender" runat="server" ConfirmText="Are you sure you want to save this?"
    Enabled="True" TargetControlID="btnSave">
</asp:ConfirmButtonExtender>
<!-- We have to have a dummy control to hold the start event we handle in code behind -->
<asp:Button ID="MpeFakeTarget" runat="server" CausesValidation="False" Style="display: none" />
<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="PanelSaveConfirmPopup"
    BehaviorID="ModalSaveConfirm" TargetControlID="MpeFakeTarget" DropShadow="true"
    CancelControlID="btnSaveConfirmedPopupOk">
</asp:ModalPopupExtender>
<asp:Panel ID="PanelSaveConfirmPopup" runat="server" Style="display: none;" BorderColor="Black"
    BorderStyle="Solid" BorderWidth="1px" Width="300px" Height="150px" BackColor="White"
    ForeColor="Black">
    <table width="99%">
        <tr>
            <td height="30">
            </td>
        </tr>
        <tr>
            <td align="center">
                <asp:Label ID="Label19" runat="server" Text="Your data has been saved."></asp:Label>
            </td>
        </tr>
        <tr>
            <td height="45">
            </td>
        </tr>
        <tr>
            <td align="center">
                <asp:Button ID="btnSaveConfirmedPopupOk" runat="server" Text="Okay" />
            </td>
        </tr>
    </table>
</asp:Panel>
</asp:Content>

Я неуверен, что мне нравится тот факт, что два всплывающих окна разные или нет?Да, сначала спрашивает чел

...