如何在asp listview中清除数据表?

时间:2018-06-04 20:36:26

标签: asp.net listview datatable

当我使用下面的代码时,我删除了数据表值,但数据表结构仍然存在并显示空字段(请参阅图片),DOM资源管理器显示空表和表行。

如何清除数据表值和表格本身?这样,当我再次重新填充搜索时,空的小表不会出现?

lvwOutput.Items.Clear();

lvwOutput.DataSource = null;

lvwOutput.DataBind();

Before

在items.clear和datasource = null之后

After

2 个答案:

答案 0 :(得分:0)

您可以创建一个属性,将数据表存储在会话中,这样您就可以在click事件期间访问它。

DataTable dtbleDataSource
{
    get
    {
        return Session["dataSource"] as DataTable
    }
    set
    {
        Session["dataSource"] = value;
    }
}

在点击活动中,您可以说:

dtbleDataSource.Reset();

答案 1 :(得分:0)

这太荒谬了,我相信有更好的方法可以做到这一点,但永无止境的服务器/客户端战争使得这比现在更难。绑定到数据表的我的listview称为lvwOutput。

在我的btnClear中,我不得不提出以下内容。您无法隐藏元素或清除服务器端asp代码中的项目以使其正常工作

ScriptManager.RegisterStartupScript(Page, GetType(), "emptyTable", "javascript:emptyTableRows(); ", true);

在我的javascript代码中,我必须输入以下内容,这会清除客户端代码

  function emptyTableRows(){
      var tableHeaderRowCount = 0;
      var table = document.getElementById('lvwOutputTable');
      var rowCount = table.rows.length;
      for (var i = tableHeaderRowCount; i < rowCount; i++) {
          table.deleteRow(tableHeaderRowCount);
      }
  }

然后在我的代码部分中,当用户启动另一个sql搜索时,它将显示listview和datatable。这清除了服务器端。

lvwOutput.Items.Clear();
lvwOutput.DataSource = null;
lvwOutput.DataBind();