2011-10-26 20 views
1

こんにちは、私はこれが誰かが簡単に答えることを願っています。まず、ListViewDataPagerにバインドし、ASP.NET UpdatePanelを入れて、データベースからAJAX対応ページャーを作成しようとしていました。 Iは、UpdatePanelをつかんで、Iは配置:Asp.Net ListViewとAsp.Net Ajaxアップデートパネルを使って作業する

  1. SqlDataSource
  2. ListView - オンImageButtonおよびいくつかの他のASP.NETコントロールそれにContentTemplate
  3. DataPager
ItemTemplate

などを有します。 UpdatePanelのトリガーフィールドのAsyncPostbackTriggerDataPager IDを割り当てると、完全に機能しました。

また、ImageButtonClickイベントで完全なポストバックを実行したかったのです。ただし、がListViewの内部にあるため、UpdataPanelは部分的なポストバックを引き起こします。私はImageButtonをUpdatePanelPostBackTriggerとして追加しようとしましたが、UpdatePanelはコントロールIDを要求し、ListViewの内部にあるのでImageButtonを受け入れません。

ListViewの要素の制御IDをどのように渡して、完全にポストバックするのですか?

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:SqlDataSource ... ></asp:SqlDataSource> 
     <asp:ListView ID="ListViewForAlbums" runat="server" > 
      <ItemTemplate> 
       <div class="album"> 
        <asp:ImageButton ID="albumPhoto" class="albumPhotosStyle" runat="server" ImageUrl="<%# Bind('albumPhotoPath') %>" AlternateText="<%# Bind('album_id') %>" ToolTip="<%# Bind('albumDetails') %>" onclick="albumPhotos_Click" /> 
        <div class="albumInfoHolder"> 

        ... 

        </div> 
       </div> <!-- End Album --> 
      </ItemTemplate> 
      <EmptyDataTemplate> 
       <p>No Albums Yet. Check Back Soon!</p> 
      </EmptyDataTemplate> 
     </asp:ListView> 

     <asp:DataPager ID="DataPagerForAlbums" runat="server" PagedControlID="ListViewForAlbums" PageSize="3" > 
      <Fields> 
       <asp:NextPreviousPagerField ShowFirstPageButton="True" FirstPageText="&laquo" ShowNextPageButton="False" ShowPreviousPageButton="false" /> 
       <asp:NumericPagerField /> 
       <asp:NextPreviousPagerField ShowLastPageButton="True" LastPageText="&raquo" ShowPreviousPageButton="False" ShowNextPageButton="false" /> 
      </Fields> 
     </asp:DataPager> 
     </p> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="DataPagerForAlbums" /> 
    </Triggers> 
</asp:UpdatePanel> 

答えて

0

はのImageButtonを取得するItemDataBound ListViewコントロールのイベントを使用してのScriptManagerのRegisterPostBackControl方法でポストバックコントロールとして登録:

は、ここに私のコードです。

+0

いくつかのサンプルコードを提供できますか? –

+0

nvm私はそれをしました。ありがとうございますSIR :) –

2

ScriptManagerを使用して、コントロールをポストバックコントロールとして登録できます。 ItemDataBoundイベントで次のようなことをしてください:

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    ImageButton button = e.Item.FindControl("ImageButton1") as ImageButton; 
    if (button != null) 
    { 
     ScriptManager.GetCurrent(Page).RegisterPostBackControl(button);    
    } 
} 
関連する問題