Comment ajouter un nouvel élément au sommet d'un ListView avec EditItemTemplate
-
27-10-2019 - |
Question
J'ai un peu de code où vous pouvez ajouter un nouveau champ à l'aide d'un bouton d'ajout, qui permettent l'aspic: EditItemTemplate, mais la chose est que cela ajoute le champ au bas de la liste, ce qui rend l'utilisateur nécessaire de faire défiler vers le bas s'il y a suffisamment d'éléments déjà dans le ListView. Comment puis-je faire apparaître le nouvel élément au-dessus de la liste?
ASP.NET CODE
<asp:ListView ID="[...]" runat="server" DataSource=<% [...] %> >
<LayoutTemplate>
[...]
</LayoutTemplate>
<ItemTemplate>
[...]
</ItemTemplate>
<EditItemTemplate>
<tr>
<td>
<asp:LinkButton id="btnUpdate" visible=<%# [...] %> runat="server" CommandName="Update"><%#res.GetString("btnUpdate")%></asp:LinkButton>
<asp:LinkButton id="btnCancel" runat="server" CommandName="Cancel"><%#res.GetString("bntCancel")%></asp:LinkButton>
</td>
<td>
<asp:HiddenField ID="[...]" runat="server" Value='<%# [...] %>' />
<asp:TextBox ID="txtDisplayName" runat="server" Text=<%# Bind("DisplayName") %> Enabled=<%# [...] %> />
</td>
</tr>
</EditItemTemplate>
</asp:ListView>
La solution
Je l'ai trouvé la solution, vous devez créer un InsertItemTemplate
comme ceci:
<asp:ListView ID="[...]" runat="server" DataSource=<% [...] %> >
<LayoutTemplate>
[...]
</LayoutTemplate>
<ItemTemplate>
[...]
</ItemTemplate>
<EditItemTemplate>
[...]
</EditItemTemplate>
<InsertItemTemplate>
<tr>
<td>
<asp:LinkButton id="btnUpdate" visible=<%# [...] %> runat="server" CommandName="Update"><%#res.GetString("btnUpdate")%></asp:LinkButton>
<asp:LinkButton id="btnCancel" runat="server" CommandName="Cancel"><%#res.GetString("bntCancel")%></asp:LinkButton>
</td>
<td>
<asp:HiddenField ID="[...]" runat="server" Value='<%# [...] %>' />
<asp:TextBox ID="txtDisplayName" runat="server" Text=<%# Bind("DisplayName") %> Enabled=<%# [...] %> />
</td>
</tr>
</InsertItemTemplate>
</asp:ListView>
alors vous devez aller à la fenêtre des propriétés de votre ListView
, réglez le InsertItemPosition
à FirstItem
.
Autres conseils
Une sorte de réponse en retard pour ce forum mais vous pouvez changer votre commande SELECT pour trier la liste par id dans la table SQL.
Exemple:
SelectCommand = "SELECT * FROM [Bulletin] ORDER BY [m_id] DESC;"
Je construit un bulletin de style forum dans mon projet et je voulais les derniers messages à apparaître en haut. Voilà comment je fini par le faire. Bien sûr, cela suppose que votre table SQL « ID » est réglé à incrémentation automatique.