GridView中直接新添一行新数据,请问怎么实现

qnetg123 2009-12-18 03:22:46
我想在ASP.NET中
在GridView中直接添加一行新数据,不把这行数据添加到数据库中,请问要怎么实现呢
...全文
612 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
别递烟哥不会 2009-12-18
  • 打赏
  • 举报
回复
构建一个新的datatable来跟gridview绑定
zhouwei7682719 2009-12-18
  • 打赏
  • 举报
回复
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);
}
这个是对的! 就这样就可以了。
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 aderlee 的回复:]

4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗

其实你还是没懂,
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件


可是得不到原先的数据源
DataTable dt =GridView.DataSource as DataTable;
这行得到的是空的。

你原来这个GridView.DataSource是怎么来的?
就是GridView.DataSource=????这个东西


原先这个数据源我也是自定义一个DataTable的数据源啊。
同楼上我所说的,这个数据源定义在全局变量中也是没办法读取到的啊


那么现在这个问题的关键就是保存住这些数据, 如果全局不行, 那么你可以考虑通过一些中介的方式,
例如: Session,ViewState之类的,等等.临时保存你需要的DataTable,要用的时候再拿来用就可以了.
[/Quote]

有道理,这样比重新去构建数据源好多了。谢谢你这么耐心帮我解答,分给你了。
CPPACE 2009-12-18
  • 打赏
  • 举报
回复
应该是的
Aderlee 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 qnetg123 的回复:]
引用 15 楼 aderlee 的回复:
引用 14 楼 qnetg123 的回复:
引用 13 楼 aderlee 的回复:
引用 10 楼 qnetg123 的回复:
4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗

其实你还是没懂,
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件


可是得不到原先的数据源
DataTable dt =GridView.DataSource as DataTable;
这行得到的是空的。

你原来这个GridView.DataSource是怎么来的?
就是GridView.DataSource=????这个东西


原先这个数据源我也是自定义一个DataTable的数据源啊。
同楼上我所说的,这个数据源定义在全局变量中也是没办法读取到的啊
[/Quote]

那么现在这个问题的关键就是保存住这些数据, 如果全局不行, 那么你可以考虑通过一些中介的方式,
例如: Session,ViewState之类的,等等.临时保存你需要的DataTable,要用的时候再拿来用就可以了.
jinlongyushiba 2009-12-18
  • 打赏
  • 举报
回复
绑定gridview
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 aderlee 的回复:]
引用 14 楼 qnetg123 的回复:
引用 13 楼 aderlee 的回复:
引用 10 楼 qnetg123 的回复:
4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗

其实你还是没懂,
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件


可是得不到原先的数据源
DataTable dt =GridView.DataSource as DataTable;
这行得到的是空的。

你原来这个GridView.DataSource是怎么来的?
就是GridView.DataSource=????这个东西
[/Quote]

原先这个数据源我也是自定义一个DataTable的数据源啊。
同楼上我所说的,这个数据源定义在全局变量中也是没办法读取到的啊
cswdcswd 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 qnetg123 的回复:]
引用 16 楼 cswdcswd 的回复:
GridView.DataSource = ds.tables[0];
DataTable dt  =  ds.tables[0];
这样不就行了吗,不一定非要从GridView里面赋值呀!反正数据源是一样的!

如果像你这样子,就要定义一个全局的DataSet啊。
可是asp.net 处理完一个WEB之后,Server中关于这些对象都会清除掉吗
到时读取ds.table[0]的时候也是空值啊。
[/Quote]


private static dataset ds;
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 cswdcswd 的回复:]
GridView.DataSource = ds.tables[0];
DataTable dt  =  ds.tables[0];
这样不就行了吗,不一定非要从GridView里面赋值呀!反正数据源是一样的!
[/Quote]
如果像你这样子,就要定义一个全局的DataSet啊。
可是asp.net 处理完一个WEB之后,Server中关于这些对象都会清除掉吗
到时读取ds.table[0]的时候也是空值啊。
cswdcswd 2009-12-18
  • 打赏
  • 举报
回复
GridView.DataSource = ds.tables[0];
DataTable dt = ds.tables[0];
这样不就行了吗,不一定非要从GridView里面赋值呀!反正数据源是一样的!
Aderlee 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qnetg123 的回复:]
引用 13 楼 aderlee 的回复:
引用 10 楼 qnetg123 的回复:
4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗

其实你还是没懂,
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件


可是得不到原先的数据源
DataTable dt =GridView.DataSource as DataTable;
这行得到的是空的。
[/Quote]
你原来这个GridView.DataSource是怎么来的?
就是GridView.DataSource=????这个东西
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 aderlee 的回复:]
引用 10 楼 qnetg123 的回复:
4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗

其实你还是没懂,
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件
[/Quote]

可是得不到原先的数据源
DataTable dt =GridView.DataSource as DataTable;
这行得到的是空的。
Aderlee 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 qnetg123 的回复:]
4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗
[/Quote]
其实你还是没懂,
人家给你的例子是new新数据源,(就是不用画公仔画出肠来而已)
你就不会把你的数据源先赋过去吗?
最后只是在你原有的数据源里插入了一条数据,再绑定到控件
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
FootTemplate 这个模板我看了。。
可是我要实现的功能是,,在GridView外面的几个文本框中填入要插到GridView的值,然后用一个Button的Click事件读取这几个文本框的值,生成一行新数据填加到GridView中,FootTemplate好像实现的不是这样的功能吧。
趴趴祥 2009-12-18
  • 打赏
  • 举报
回复
你可以通过GridView中的FootTemplate这个模板实现,在点击添加按钮时,显示脚模块,添加数据在点击提交隐藏脚模板,在为GridView重新绑定数据,就可以了。
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
4、7、9 楼的朋友的方法我懂,但是我不想重新构建个数据源,有没有办法直接向里边添加吗
wuwei_longlong 2009-12-18
  • 打赏
  • 举报
回复
用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();
qnetg123 2009-12-18
  • 打赏
  • 举报
回复
2楼的方法我不太明白,FootTemplate没玩过。。。
Lovely_baby 2009-12-18
  • 打赏
  • 举报
回复

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);
}

chengcheng1253 2009-12-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 amandag 的回复:]
GridView对插入的功能支持并不好,一般的做法是把要插入的行控件放在FootTemplate实现
[/Quote]
还是高人指点啊~~
加载更多回复(5)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧