如何使用EditItemTemplate在ListView的顶部添加新项目

时间:2011-06-13 19:22:40

标签: .net asp.net vb.net listview edititemtemplate

我有一些代码,您可以使用添加按钮添加新字段,这将启用asp:EditItemTemplate,但问题是这会在列表底部添加字段,使用户必须滚动如果ListView中已有足够的项目,则向下。如何让新项目显示在列表顶部?

ASP.NET代码

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

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,你必须像这样创建一个InsertItemTemplate

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

然后您必须转到ListView的属性窗口,将InsertItemPosition设置为FirstItem

答案 1 :(得分:0)

这个论坛有一个迟到的答案,但您可以更改SELECT命令,以便在SQL表中按ID排序列表。

示例:

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

我在我的项目中构建了一个论坛风格的公告,我希望最后的帖子出现在顶部。这就是我最终做到的方式。当然,这假设您的SQL表“ID”设置为自动增量。