2012-11-26 66 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 –

相关问题