将数据插入到girdview而不发送到数据库
本文关键字:数据库 girdview 数据 插入 | 更新日期: 2023-09-27 18:16:19
我有这个代码
DataTable dt = new DataTable("MyDataTable");
dt.Columns.Add("Value1");
dt.Columns.Add("Value2");
dt.Columns.Add("Value3");
dt.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text);
GridView1.DataSource = dt;
GridView1.DataBind();
当我尝试使用此代码将数据插入gridview时,新值将替换为旧值。
你正在重新绑定gridview。这将擦除现有数据。如果您想更新网格视图,我建议将新行添加到持久数据存储并从中刷新。这可以是一个数据库表或数据结构。
页面中的每个控件都会在每次请求时重新创建。看一下ASP。. NET页面生命周期概述。
处理这个问题的典型方法是使用Page。在Page_Load方法中的IsPostBack属性:if (!Page.IsPostBack)
{
DataTable dt = new DataTable("MyDataTable");
dt.Columns.Add("Value1");
dt.Columns.Add("Value2");
dt.Columns.Add("Value3");
dt.Rows.Add(TextBox1.Text, TextBox2.Text, TextBox3.Text);
GridView1.DataSource = dt;
GridView1.DataBind();
}
这将允许您的网格视图在两次回发之间持续存在。
另一个问题是你将GridView绑定到一个新的DataTable实例,覆盖当前的DataSource。要解决这个问题,需要在请求之间持久化数据表数据,通常是在数据库、xml文件或其他数据源中。
您可以向已经绑定到Grid的DataTable添加新的datarow。为了防止将这些作为新行发送到DB,请在DataRow上调用.AcceptChanges
。