【问题标题】:How to add a new item at the top of a ListView with EditItemTemplate如何使用 EditItemTemplate 在 ListView 顶部添加新项目
【发布时间】:2011-06-13 19:22:39
【问题描述】:

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

【问题讨论】:

  • 我很困惑。你说的是一个添加按钮,但我在你的代码中看不到一个。

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


【解决方案1】:

我找到了解决方案,你必须像这样创建一个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

【讨论】:

    【解决方案2】:

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

    例子:

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-17
      • 2020-11-18
      • 1970-01-01
      • 2012-08-26
      • 2019-01-21
      相关资源
      最近更新 更多