I have a bit of code where you can add a new field using an add button, which enable the asp:EditItemTemplate, but the thing is that this adds the field at the bottom of the list, making the user have to scroll down if there is enough items already in the ListView. How can I make the new item appear on top of the list?

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>
有帮助吗?

解决方案

I have found the solution, you have to create an InsertItemTemplate like this:

<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>

then you have to go to the properties window of your ListView, set the InsertItemPosition to FirstItem.

其他提示

Kind of a late answer for this forum but you could change your SELECT command to order the list by id in the SQL table.

Example:

SelectCommand="SELECT * FROM [Bulletin] ORDER BY [m_id] DESC;"

I built a forum style bulletin in my project and I wanted the last posts to appear at the top. That's how I ended up doing it. Of course, this assumes that your SQL table "ID" is set to auto increment.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top