Две панели обновления и всплывающее окно, которое не должно исчезать после обратной передачи - PullRequest
0 голосов
/ 22 февраля 2012

На моем MasterPage у меня есть 2 панели обновления, которые окружены панелями. Два из них содержат элементы управления «Просмотр сведений» и некоторые кнопки.

С другой стороны, у меня есть один UpdatePanel, который содержит кнопки изображений и кнопки ссылок.

Идея в том, что я извлекаю из базы данных сообщения (2 вида), показывая их на странице. Когда пользователь нажимает кнопку (LinkButton или ImageButton), он или она видит «Всплывающее управление». На всплывающем элементе управления он может просмотреть детали сообщения и, если необходимо, отменить их или утвердить.

Вот где я застрял. Если я удалю ImageButtons из UpdatePanels, я не смогу обновить их без полной обратной передачи.

Если у меня есть 'popup extensions' в UpdatePanel с ImageButtons, но затем, когда я нажимаю на кнопку из 'popup panel' - она ​​исчезает (нет полной обратной передачи, она просто исчезает) - она следует просто изменить страницу DetailsView.

Как мне заставить это работать?

Заранее спасибо!

(мне нужно это решение, потому что я хочу использовать таймер для обновления LinkButtons)

вот мой код:

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        //here im pulling data from database and binding it with 'details view' controls, its not big deal so i think i don't have to show it?
        wyswietl_powiadomienia_o_wydarzeniach();
        wyswietl_ilosc_zaproszen_do_przyjaciol();
        wyswietl_ilosc_nieodczytanych_wiadomosci();

    }
    catch (Exception)
    {
    }
}


protected void ButtonWczesniej_Click(object sender, EventArgs e)
{

    DetailsViewEventsRequests.PageIndex = DetailsViewEventsRequests.PageIndex - 1;
    ButtonDalej.Enabled = true;
    wyswietl_powiadomienia_o_wydarzeniach();

}
protected void ButtonDalej_Click(object sender, EventArgs e)
{
    // 
    DetailsViewEventsRequests.PageIndex = DetailsViewEventsRequests.PageIndex + 1;

    ButtonWczesniej.Enabled = true;
    wyswietl_powiadomienia_o_wydarzeniach();
}

protected void ButtonInvLeft_Click(object sender, EventArgs e)
{
    DetailsViewIfFriends.PageIndex = DetailsViewIfFriends.PageIndex - 1;
}
protected void ButtonInvRight_Click(object sender, EventArgs e)
{
    DetailsViewIfFriends.PageIndex = DetailsViewIfFriends.PageIndex + 1;
}

И мой aspx: (только одна панель обновлений с подробным представлением, потому что вторая очень похожая)

<div id="NotifyAreaWhite">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <div id="NotifyAreaDiv">
                <div id="NotifyDivMail">
                    <div id="NotifyLeftMSG"><asp:ImageButton ID="ImageButtonNotifyMsg" runat="server"  
                            ImageUrl="~/images/msg.png" PostBackUrl="~/wiadomosci.aspx" 
                            ToolTip="Wyslij wiadomosc" /></div>
                    <div class="NotifyRight"> <asp:LinkButton ID="LabelNotifyMsgNo" runat="server"  Text="0" Font-Size="Large" PostBackUrl="~/wiadomosci.aspx"/></div>
                </div>
                <div class="NotifyDiv">
                <div id="NotifyLeftFrend" class="NotifyLeft"> <asp:ImageButton ID="ImageButtonNotifyFrends" runat="server" 
                        ImageUrl="~/images/friends.png" 
                        ToolTip="Zaproszenia od znajomych." /></div>
                <div id="NotifyRightFrend" class="NotifyRight"><asp:LinkButton ID="LabelNotifyFrendsNo" runat="server" Text="0" Font-Size="Large"/></div>
                </div>
                <div class="NotifyDiv">
                <div id="NotifyLeftWyd" class="NotifyLeft"> <asp:ImageButton ID="ImageButtonWydarzenia" runat="server" ImageUrl="~/images/event.png" ToolTip="Zaproszenia do wydarzen." /></div>
                <div id="NotifyRightWyd" class="NotifyRight"> <asp:LinkButton ID="LabelNotifyEventsNo" runat="server" Text="0" Font-Size="Large"/></div>
                </div>
                </div>
                     <asp:ModalPopupExtender ID="PanelZaproszeniaEventy_ModalPopupExtender" 
                        runat="server"  Enabled="true" OkControlID="ButtonZamknijOkno" CancelControlID="ButtonZamknijOkno"
                        TargetControlID="ImageButtonWydarzenia" PopupControlID="PanelZaproszeniaEventy"
                        BackgroundCssClass="NotifyPageTloClass"/> //extender showing Panel
                     <asp:ModalPopupExtender ID="PanelZaproszeniaEventy_ModalPopupExtenderCyfra" 
                        runat="server"  Enabled="true" OkControlID="ButtonZamknijOkno" CancelControlID="ButtonZamknijOkno"
                        TargetControlID="LabelNotifyEventsNo" PopupControlID="PanelZaproszeniaEventy"
                        BackgroundCssClass="NotifyPageTloClass"/>

                      <asp:ModalPopupExtender ID="PanelProsbyOznajomosc_ModalPopupExtender" 
                        runat="server"  Enabled="true" OkControlID="ButtonFrendCloseNotifier" CancelControlID="ButtonFrendCloseNotifier"
                        TargetControlID="ImageButtonNotifyFrends" PopupControlID="PanelProsbyOznajomosc"
                        BackgroundCssClass="NotifyPageTloClass"/>
                      <asp:ModalPopupExtender ID="PanelProsbyOznajomosc_ModalPopupExtenderCyfra" 
                        runat="server"  Enabled="true" OkControlID="ButtonFrendCloseNotifier" CancelControlID="ButtonFrendCloseNotifier"
                        TargetControlID="LabelNotifyFrendsNo" PopupControlID="PanelProsbyOznajomosc"
                        BackgroundCssClass="NotifyPageTloClass"/>
          </ContentTemplate>
    </asp:UpdatePanel>
</div>

<asp:Panel ID="PanelZaproszeniaEventy" runat="server" Width="318px" CssClass="NotifyWydTlo" >
     <asp:UpdatePanel ID="UpdatePanelZaproszeniaEventy" runat="server" RenderMode="Block">
        <ContentTemplate>
                    <asp:DetailsView ID="DetailsViewEventsRequests" runat="server" DataKeyNames="Charakterystyka" AutoGenerateRows="False" Height="17px" Width="313px" HorizontalAlign="Center" onitemcreated="DetailsViewEventsRequests_ItemCreated">
                        <Fields>
                            <asp:BoundField DataField="UserName" HeaderText="Zalozyciel" SortExpression="Nazwisko" />
                            <asp:BoundField DataField="Miasto" HeaderText="Gdzie?" SortExpression="Miasto" />
                            <asp:BoundField DataField="Data_ZalozeniaWydarzenia" HeaderText="Data wyslania" SortExpression="Miasto" />
                        </Fields>
                        <FooterTemplate>
                        </FooterTemplate>
                        <HeaderTemplate>
                            <div>
                                <div style="float:left;">
                                   <asp:Label ID="LabelNazwaWydarzenia" runat="server"  
                                      Text='<%# Eval("Nazwa_Wydarzenia") %>'></asp:Label>
                                </div>
                                <div style="float:right; margin-left:5px;">
                                   <asp:Button ID="ButtonZobacz" runat="server"  CssClass="myButton" Text="Zobacz Wydarzenie" Font-Size="X-Small" Width="150px" ClientIDMode="AutoID" OnClick="ButtonZobacz_click" UseSubmitBehavior="True"/>
                                </div>
                            </div>
                        </HeaderTemplate>
                        <EmptyDataTemplate>
                            <table id="Table1" runat="server" style="border-collapse: collapse;border-color: #999999;border-style:none;border-width:1px; color:#FF5041; margin-left:auto; margin-right:auto;">
                                <tr>
                                   <td>Nie masz zadnych zaproszen.</td>
                                </tr>
                            </table>
                        </EmptyDataTemplate>
                    </asp:DetailsView>
            <table style="margin-left:auto; margin-right:auto;">
                <tr>
                    <td>
                        <asp:Button ID="ButtonWczesniej"  Width="69px" Height="41px" runat="server" Text="<<" OnClick="ButtonWczesniej_Click" CssClass="myButton" /></td> //button previous msg
                    <td>
                      <asp:Button ID="ButtonDalej" Width="69px" Height="41px" runat="server" Text=">>"  ///button next msg
                            OnClick="ButtonDalej_Click" CssClass="myButton"/></td>
                </tr>
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>
    <div style="margin-left:auto; margin-right:auto; width: 112px;">
        <asp:Button CssClass="myButton" ID="ButtonZamknijOkno"  Width="100%"  //button closing popup
        Height="41px" runat="server" Text="ZAMKNIJ"/>
    </div>
</asp:Panel>

Надеюсь, я хорошо это описал. Извините за мой слабый английский и некоторые польские слова в коде:)

1 Ответ

0 голосов
/ 25 февраля 2012

Как я должен был сделать в начале, я сделал этот пример на пустой странице и попробовал что-то еще .. mode = "Conditional" добился цели.

Я должен дать этот код раньше, а не такой длинный:)

<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
        <asp:HyperLink ID="HyperLinkPanelOn" runat="server">click here to show popup</asp:HyperLink>
            <asp:ModalPopupExtender ID="PanelZaproszeniaEventy_ModalPopupExtenderCyfra" 
            runat="server"  Enabled="true" OkControlID="ButtonClose" CancelControlID="ButtonClose"
            TargetControlID="HyperLinkPanelOn" PopupControlID="Panel1" BackgroundCssClass="NotifyPageTloClass" />
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Panel ID="Panel1" runat="server">
        <asp:UpdatePanel ID="UpdatePanelPopUp" runat="server">
        <ContentTemplate>
            <asp:Button runat="server" Text="postback" />
            <asp:Button runat="server" Text="postback" />
         </ContentTemplate>
        </asp:UpdatePanel>
        <asp:Button ID="ButtonClose" runat="server" Text="Zamknij" />
    </asp:Panel>

Так просто .. Я думал, что это нечто большее: /

...