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>
Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top