2011-07-09 71 views
0

我有一個數據轉發器內的數據轉發器來顯示一些頁碼,我使用了模板尋呼機字段,因爲那裏還有其他數據,以及因爲我希望能夠重新編碼,使用這個,我已經將它抽象爲嵌入在數據尋呼機中的用戶控件。Repeater inside數據尋呼機

下面是用戶控制

<asp:DataPager ID="MessagesDataPager" SkinID="AdminCorrespondenceDataPager" PagedControlID="MessagesListView" runat="server"> 
    <Fields> 
     <asp:TemplatePagerField OnPagerCommand="Pager_OnPagerCommand"> 
      <PagerTemplate> 
       <uc:ListViewPager Id="Pager" runat="server" /> 
      </PagerTemplate> 
     </asp:TemplatePagerField> 
    </Fields> 
</asp:DataPager> 

這裏尋呼機用戶控制

<p class="pag"> 
    <span class="pagerSummaryPages"><asp:Literal ID="SummaryLiteral" runat="server" /></span> 
    <asp:LinkButton ID="PreviousPageButton" runat="server" Text="&lt Previous" OnCommand="ChangePageCommand" CommandArgument="-1" /> 
    <span> 
     <asp:Repeater ID="PageLinksRepeater" OnItemDataBound="PageLinksRepeater_OnItemDataBound" runat="server"> 
      <ItemTemplate> 
       <asp:LinkButton ID="PageLink" CssClass="pageLink" runat="server" OnCommand="ChangePageCommand" /> 
      </ItemTemplate> 
     </asp:Repeater> 
    </span> 
    <asp:LinkButton ID="NextPageButton" runat="server" Text="Next &gt;" OnCommand="ChangePageCommand" CommandArgument="1" /> 
</p> 

所以鏈接按鈕不在中繼器工作正確和模板尋呼機場接收PagerCommand事件,但是當點擊中繼器內的鏈接按鈕時,它們會觸發一個回發和他們自己的命令事件,但TemplatedPagerField上的PagerCommand事件永遠不會被觸發。

的這個整點是可重複使用的控件,產生類似的167 <上一頁2 3 4 5 25-50尋呼值>

回答

0

決不可能得到這個正確地工作,而不是替換爲中繼器一個佔位符和動態添加的鏈接按鈕,大多數情況下,這種方式非常有效。所以用戶控制變成了

<p class="pag"> 
    <span class="pagerSummaryPages"><asp:Literal ID="SummaryLiteral" runat="server" /></span> 
    <asp:LinkButton ID="PreviousPageButton" runat="server" Text="&lt Previous" OnCommand="ChangePageCommand" CommandArgument="-1" /> 
    <span> 
     <asp:PlaceHolder ID="LinksPlaceHolder" runat="server" /> 
    </span> 
    <asp:LinkButton ID="NextPageButton" runat="server" Text="Next &gt;" OnCommand="ChangePageCommand" CommandArgument="1" /> 
</p> 

並且在OnInit函數中添加了我的動態鏈接按鈕。