1

我有一些代码,您可以在其中使用添加按钮添加新字段,该按钮启用 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>
4

2 回答 2

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,设置InsertItemPositionFirstItem

于 2011-06-13T21:06:04.540 回答
0

这个论坛的答案有点晚,但您可以更改您的 SELECT 命令以在 SQL 表中按 id 对列表进行排序。

例子:

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

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

于 2013-07-03T20:28:26.280 回答