asp listview数据源追加

本文关键字:追加 数据源 listview asp | 更新日期: 2023-09-27 18:24:48

每次刷新页面时,从数据库中引入一组记录的列表视图都会发生变化,例如,如果我有3条记录,并添加了另一条记录(第四条),当我刷新页面时时,这4条记录似乎会被添加到列表视图中!

protected void listComment_Load(object sender, EventArgs e)
    {
        listViewComment.DataSource = Connect.ExecuteSelect(CommandBuilder.GetAllComments());
        listViewComment.DataBind();
    }

我需要先使用某种刷新还是清除?我在listview加载时调用这个方法。


ASPX页面,ListView控件:

<asp:ListView ID="listViewComment" runat="server" OnLoad="listComment_Load" class="container-commentBox">
                    <LayoutTemplate>
                        <h1>
                            Shout Box
                        </h1>
                        <div id="itemPlaceholder" runat="server" />
                    </LayoutTemplate>
                    <ItemTemplate>
                        <div>
                            <%# Eval("username") %>:
                            <br />
                            <%# Eval("comment") %>
                        </div>
                    </ItemTemplate>
                    <ItemSeparatorTemplate>
                        <hr />
                    </ItemSeparatorTemplate>

执行选择:

public static DataSet ExecuteSelect(string query)
    {
        try
        {
            connection.Open();
            command.CommandText = query;
            command.Connection = connection;
            adapter.SelectCommand = command;
            using (adapter)
            {
                adapter.Fill(dataSet);
            }
        }
        catch (Exception e)
        {
        }
        finally
        {
            connection.Close();
        }
        return dataSet;
    }

asp listview数据源追加

我找到了答案,我所需要做的就是每次调用该方法时创建一个新的DataSet

因此,作为ExecuteSelect方法中的第一行,我们写:DataSet dataSet = new DataSet();

如果我们重用其中有一些记录的旧数据集,那么传入的记录将在adapter.fill(dataSet)调用中被RE-ADDED,从而显示数据集中混合的新旧记录。