Arbeiten mit Asp.Net ListView und Asp.Net Ajax Update Panel
Hallo, ich hoffe, das wird leicht sein, für jemanden zu beantworten. First off, ich versuchte ListView
gebunden DataPager
und in einem ASP.NET UpdatePanel
um eine AJAX-powered-pager für die Datensätze aus meiner Datenbank. Ich schnappte mir ein UpdatePanel
und ich gelegt:
SqlDataSource
ListView
- unterItemTemplate
einschließlich einerImageButton
und einige andere ASP.NET BedienelementeDataPager
in der ContentTemplate
. Die Zuordnung der DataPager
- ID, um die AsyncPostbackTrigger
im UpdatePanel
's trigger-Felder funktioniert einwandfrei.
Wollte ich auch durchführen, eine vollständige post-zurück in die ImageButton
Click
Veranstaltung. Da jedoch die ImageButton
ist innerhalb der ListView
, die UpdataPanel
führt zu einer teilweisen post-back. Ich habe versucht, das hinzufügen der ImageButton als UpdatePanel
PostBackTrigger
, aber die UpdatePanel
verlangt eine Steuerelement-ID, und nicht akzeptieren, die ImageButton
da es innerhalb der ListView
.
Wie gebe ich es ein Steuerelement-ID für ein element innerhalb ItemTemplate
des ListView
und erfolgreich führen eine vollständige post zurück?
Hier ist mein code:
<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="«" ShowNextPageButton="False" ShowPreviousPageButton="false" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ShowLastPageButton="True" LastPageText="»" ShowPreviousPageButton="False" ShowNextPageButton="false" />
</Fields>
</asp:DataPager>
</p>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DataPagerForAlbums" />
</Triggers>
</asp:UpdatePanel>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie das ScriptManager-Steuerelement registrieren Sie das Steuerelement als Steuerelement ein postback. So etwas in der
ItemDataBound
Veranstaltung:Verwenden ItemDataBound-ListView-event zu bekommen, ImageButton und registrieren Sie es als eine postback-Steuerelement mit ScriptManager ist RegisterPostBackControl Methode.