2012-02-22 57 views
0

在我的MasterPage上,我有2個更新面板,它們被面板包圍。其中兩個包含「詳細信息視圖」控件和一些按鈕。兩個updatePanels和彈出擴展器,它不應該在回發後消失

另一方面,我有一個UpdatePanel其中包含圖像按鈕和鏈接按鈕。

這個想法是,我從數據庫中獲取消息(2種),在頁面上顯示它們。當用戶點擊一個按鈕(LinkButtonImageButton)時,他或她會看到一個「彈出式控件」。在彈出控件上,他或她可以看到消息詳細信息,如果需要,可以取消或批准。

這裏是我卡住的地方。如果我從UpdatePanels中刪除ImageButtons,我將無法在沒有完整回發的情況下刷新它們。

我應該有「彈出式擴展」在UpdatePanelImageButtons,但後來當我點擊從「彈出面板」按鈕 - 它消失(沒有完全回發,它只是消失) - 它應該只是改變DetailsView頁面。

如何讓它工作?

在此先感謝!

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::(只有一個UpdatePanel中有詳細的觀點,因爲第2

這裏是我的代碼背後

(因爲我想用一個定時器刷新LinkButtons我需要這個解決方案)其中一個非常類似)

<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> 

我希望我描述得很好。對不起對於我的弱英語和一些波蘭語代碼:)

回答

0

正如我應該做的開始,我在空白頁上做了這個例子,並嘗試別的東西.. 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> 

這麼簡單..我認爲這是更大的東西:/