GridView中直接新添一行新数据,请问怎么实现 我想在ASP.NET中在GridView中直接添加一行新数据,不把这行数据添加到数据库中,请问要怎么实现呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以向DataTable中添加DataRow,然后然后重新绑定GridView GridView对插入的功能支持并不好,一般的做法是把要插入的行控件放在FootTemplate实现 DataColumn dc = new DataColumn(); dc.ColumnName = "Date"; ds.Tables["ExtensionList"].Columns.Add(dc); gvview.DataSource = ds.Tables["ExtensionList"]; 回4楼: 你这种方法就等于重新创建一个数据源了啊,而且我GridView原先里就有数据,然后添加新行的。这样子这个数据源还要重新读取GridView中的数据,有没有办法不这样子呢。能不能直接向里边添加一行进去呢 DataTable dt = new DataTable(); dt.Columns.Add("id"); for (int i = 0; i < 4; i++) { DataRow dr = dt.NewRow(); dr["id"] = i; dt.Rows.Add(dr); } 2楼的方法我不太明白,FootTemplate没玩过 用List<T>List< ProductItem > list = new List< ProductItem >();Model.ProductItem product = new Model.ProductItem();product.ProductID = int.Parse(productID);product.Version = version;product.Quantity = System.Convert.ToInt32(quantity);product.Price = Convert.ToDecimal(unitPrice);product.Note = note;list.Add(product);this.gv_product.DataSource = list;this.gv_product.DataBind(); 你可以通过GridView中的FootTemplate这个模板实现,在点击添加按钮时,显示脚模块,添加数据在点击提交隐藏脚模板,在为GridView重新绑定数据,就可以了。 FootTemplate 这个模板我看了。。可是我要实现的功能是,,在GridView外面的几个文本框中填入要插到GridView的值,然后用一个Button的Click事件读取这几个文本框的值,生成一行新数据填加到GridView中,FootTemplate好像实现的不是这样的功能吧。 其实你还是没懂,人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)你就不会把你的数据源先赋过去吗?最后只是在你原有的数据源里插入了一条数据,再绑定到控件 可是得不到原先的数据源DataTable dt =GridView.DataSource as DataTable;这行得到的是空的。 你原来这个GridView.DataSource是怎么来的?就是GridView.DataSource=????这个东西 GridView.DataSource = ds.tables[0];DataTable dt = ds.tables[0];这样不就行了吗,不一定非要从GridView里面赋值呀!反正数据源是一样的! 如果像你这样子,就要定义一个全局的DataSet啊。可是asp.net 处理完一个WEB之后,Server中关于这些对象都会清除掉吗到时读取ds.table[0]的时候也是空值啊。 private static dataset ds; 原先这个数据源我也是自定义一个DataTable的数据源啊。同楼上我所说的,这个数据源定义在全局变量中也是没办法读取到的啊 那么现在这个问题的关键就是保存住这些数据, 如果全局不行, 那么你可以考虑通过一些中介的方式,例如: Session,ViewState之类的,等等.临时保存你需要的DataTable,要用的时候再拿来用就可以了. DataTable dt = new DataTable(); dt.Columns.Add("id"); for (int i = 0; i < 4; i++) { DataRow dr = dt.NewRow(); dr["id"] = i; dt.Rows.Add(dr); }这个是对的! 就这样就可以了。 构建一个新的datatable来跟gridview绑定 跨库事物 sql查询问题 如何根据本地页面的用户名密码登录带外部网站,把查询到的结果在本店显示出来 输出图显示的一个问题,高手请进,速度结帖!~ 急!!!!!!大侠们帮帮忙!!!!! 请问如何让我的页面在浏览器中居中显示 在线等 有人做过动态显示flash方面的网站么?比如点击一个连接传一个Id到显示Flash页面.如何得到这个Id以显示对应的flash 谁能帮我做一个asp发邮件的程序(有酬) 有關window.close(); 请推荐几本ASP.NET初学者适合看的好书 通过DataSet更新数据库效率如何? 一个sql 语句
dc.ColumnName = "Date";
ds.Tables["ExtensionList"].Columns.Add(dc); gvview.DataSource = ds.Tables["ExtensionList"];
你这种方法就等于重新创建一个数据源了啊,而且我GridView原先里就有数据,然后添加新行的。这样子这个数据源还要重新读取GridView中的数据,有没有办法不这样子呢。能不能直接向里边添加一行进去呢
DataTable dt = new DataTable(); dt.Columns.Add("id");
for (int i = 0; i < 4; i++)
{
DataRow dr = dt.NewRow();
dr["id"] = i; dt.Rows.Add(dr);
}
List< ProductItem > list = new List< ProductItem >();
Model.ProductItem product = new Model.ProductItem();
product.ProductID = int.Parse(productID);
product.Version = version;
product.Quantity = System.Convert.ToInt32(quantity);
product.Price = Convert.ToDecimal(unitPrice);
product.Note = note;
list.Add(product);this.gv_product.DataSource = list;
this.gv_product.DataBind();
可是我要实现的功能是,,在GridView外面的几个文本框中填入要插到GridView的值,然后用一个Button的Click事件读取这几个文本框的值,生成一行新数据填加到GridView中,FootTemplate好像实现的不是这样的功能吧。
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件
可是得不到原先的数据源
DataTable dt =GridView.DataSource as DataTable;
这行得到的是空的。
就是GridView.DataSource=????这个东西
DataTable dt = ds.tables[0];
这样不就行了吗,不一定非要从GridView里面赋值呀!反正数据源是一样的!
可是asp.net 处理完一个WEB之后,Server中关于这些对象都会清除掉吗
到时读取ds.table[0]的时候也是空值啊。
原先这个数据源我也是自定义一个DataTable的数据源啊。
同楼上我所说的,这个数据源定义在全局变量中也是没办法读取到的啊
那么现在这个问题的关键就是保存住这些数据, 如果全局不行, 那么你可以考虑通过一些中介的方式,
例如: Session,ViewState之类的,等等.临时保存你需要的DataTable,要用的时候再拿来用就可以了.
for (int i = 0; i < 4; i++)
{
DataRow dr = dt.NewRow();
dr["id"] = i; dt.Rows.Add(dr);
}
这个是对的! 就这样就可以了。