我有一些代码,您可以使用添加按钮添加新字段,这将启用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>
答案 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”设置为自动增量。