2012-11-26 65 views
-1

我在aspx頁面上有2個更新面板,如下所示。 aspx頁面使用一個UserControl元素,該元素實現一箇中繼器,並在其上顯示頁碼列表。有兩個頁碼列表,例如L1和L2,一個在頁面頂部,一個在底部。 (因此,aspx頁面上的2個用戶控件RevPaging1和RevPaging2)。更新asp.net更新面板中的用戶控件(基於另一個用戶控件中的操作)

<%@ Register Src="../Controls/UseControl.ascx" TagName="UserControl" TagPrefix="uc1" %> 

<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional"> 
     <ContentTemplate> 

     <div id="Div1" class="paging" runat="server" visible="false"> 
      <uc1:UserControl id="RevPaging1" runat="server" ShowResult="false"> 
      </uc1:UserControl>   
     </div> 

     </ContentTemplate> 
    </asp:UpdatePanel> 

    <asp:UpdatePanel runat="server" ID="UpdatePanel2" UpdateMode="Conditional"> 

     <ContentTemplate> 

      <div id="Div2" class="paging" runat="server" visible="false"> 
        <uc1:UserControl id="RevPaging2" runat="server" ShowResult="false"> 
        </uc1:UserControl>   
      </div>   

     </ContentTemplate> 

    </asp:UpdatePanel> 

問:我如何確保當我在任何頁碼點擊「RevPaging1」 ,頁碼會自動更新「RevPaging2」(相同 號,我在RevPaging1選擇一個我沒有點擊),同樣,當我點擊「RevPaging2」上的任何頁碼時,頁碼會自動更新到「RevPaging1」(我沒有點擊過)。

以下是UserControl的實現(在上述2個 更新面板中聲明瞭兩次)。

<%@ Control Language="C#" AutoEventWireup="true" 
    CodeBehind="UserControl.ascx.cs" Inherits="Namespace.UserControl" %> 

    <table> 
     <tr> 
      <td class="left"> 
       <p class="button2Left"></p> 
        <asp:Button ID="btPreviousPage" runat="server" cssclass="button2" 
           OnClick="btPreviousPage_Click" Text="Previous Page" /> 
       <p class="button2Right"></p> 
      </td> 
      <td class="middle"> 
      <asp:Repeater ID="pageNumbers" runat="server" OnItemCommand="pageNumbers_ItemCommand"> 
       <HeaderTemplate> 
        <ul>This is the header template</ul> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <li class='<%#DataBinder.Eval(Container.DataItem,"PCssClass")%>'> 
         <asp:LinkButton ID="LinkButton1" CommandName="prefixLink" 
             CommandArgument='<%#DataBinder.Eval(Container.DataItem,"PText")%>' 
             runat="server" 
             Text='<%#DataBinder.Eval(Container.DataItem,"PText")%>' /> 
        </li> 
       </ItemTemplate> 
       <FooterTemplate> 
         <ul>This is the footer template</ul> 
       </FooterTemplate> 
      </asp:Repeater> 
      </td> 

      <td class="right"> 
       <p class="button2Left"></p> 
        <asp:Button ID="btNextPage" cssclass="button2" runat="server" OnClick="btNextPage_Click" Text="Next Page" /> 
       <p class="button2Right"></p> 
      </td> 
     </tr> 
    </table> 
+1

歡迎來到StackOverflow!在發佈具有更一般形式的問題時,將代碼提取到相關部分是一個好主意。如果他們不需要解析這麼多的代碼,人們就更有可能提供幫助。 – Tyrsius

+0

請發佈較少的代碼,我認爲你的帖子上的一些代碼是不必要的 – pylover

+0

我的歉意,我只是出於想法,這是花費太多時間....我剛剛編輯了我發佈的代碼的一部分。 – que123

回答

0

當您處理控件中的頁碼的點擊事件時,會有一個單獨的函數用數據更新兩個面板/控件。

+0

我嘗試了這種方法,並在訂戶(aspx頁面)中對事件執行了UpdatePanel1.update()和UpdatePanel2.update(),但這並不起作用。該事件是作爲一個委託實現的,中繼器上的操作存儲在一個CustomEventArgs類中,並被分配給一個訂閱者 - 這是我更新面板更新但沒有運氣的地方。 – que123

+0

你可以試試這個方法 - http://stackoverflow.com/questions/12907075/updating-an-update-panel-in-a-usercontrol-from-a-control-in-another-user-control?rq=1 –

相關問題