GridView如何一次插入多行数据

wanghao111 2010-07-06 06:12:18
有个两个Button,一个Add,一个Save,单击Add,在GridView第一行插入一空行(注:列中存在DropDownList,TextBox等控件),可以编辑,然后再单击Add,再在第一行加入一空行,用户编辑输入信息,如此添加多行后,单击Save,把编辑好的多行数据存到数据库中。
1.如何实现单击Add,添加多行。如单击三次Add,添加了三个空行(可编辑,存在其它控件)
2.如何获取添加的数据
请各位大虾们指教,小弟不胜感激。
...全文
490 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghao111 2010-07-08
  • 打赏
  • 举报
回复
没人了呢,原来的程序用了服务端的验证控件,所以使用js的话,以前的一些功能就会丢失,怎么实现这个功能,并且不丢失原来已存在的功能呢啊
JiuchunYoung 2010-07-07
  • 打赏
  • 举报
回复
js动态创建行
var row=document.getElementById("tab").insertRow();
var cell1=row.insertCell();
cell1.innerHTML=" <input type='text' id='txt'>";
或在数据源中添加行,再绑定

这个不错哦 呵呵,加油哦
tashiwoweiyi 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 luli668 的回复:]

意思就是,每点一次Add就再后台朝数据源里面加一行空数据,然后再绑定,依次类推,最后点Save的时候,再连接数据库更新...不知道我理解的正确与否...
[/Quote]

luli668 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 tashiwoweiyi 的回复:]
引用 1 楼 wuyq11 的回复:
js动态创建行
var row=document.getElementById("tab").insertRow();
var cell1=row.insertCell();
cell1.innerHTML=" <input type='text' id='txt'>";
或在数据源中添加行,再绑定


我是来学习的,你这是可以动态添加行,但具……
[/Quote]
意思就是,每点一次Add就再后台朝数据源里面加一行空数据,然后再绑定,依次类推,最后点Save的时候,再连接数据库更新...不知道我理解的正确与否...
tashiwoweiyi 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
js动态创建行
var row=document.getElementById("tab").insertRow();
var cell1=row.insertCell();
cell1.innerHTML=" <input type='text' id='txt'>";
或在数据源中添加行,再绑定
[/Quote]

我是来学习的,你这是可以动态添加行,但具体绑定如何操作?
mm51221 2010-07-07
  • 打赏
  • 举报
回复
引用 11 楼 a6711145 的回复:
这样的问题,就用 javascript jquery 来做就好了,
没必要 扯上服务器控件

对。。能节省尽量节省。。。

顶、、、
geass 2010-07-07
  • 打赏
  • 举报
回复
之前做过类似的,点添加时用 DataTable 保存GridView的数据,DataTable 增加空行再 赋给 GridView
最后保存就 循环GridView行 插入数据库。
这种方法会刷新页面
zakumiwb 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yjp2006 的回复:]
引用 1 楼 wuyq11 的回复:

js动态创建行
var row=document.getElementById("tab").insertRow();
var cell1=row.insertCell();
cell1.innerHTML=" <input type='text' id='txt'>";
或在数据源中添加行,再绑定
[/Quote]

可以尝试
lxh569354762 2010-07-07
  • 打赏
  • 举报
回复
每行里面的控件可以在GridView模板列里定义,在代码中用DataTable,每点击一次就给DataTable加一行
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
dt = new DataTable();
dt.Columns.Add("");
dt.Columns.Add("");
dt.Columns.Add("");
dt.Columns.Add("");
dt.Columns.Add("");
AddRow();
}
}

private void AddRow()
{
DataRow dr = dt.NewRow();
dr[0] = "";
dr[1] = "";
dr[2] = "";
dr[3] = "";
dr[4] = "";
dt.Rows.Add(dr);
GridView1.DataSource = dt;//把DataTable作为GridView的数据源绑定
GridView1.DataBind();
}

protected void AddRecords_Click(object sender, EventArgs e)
{
AddRow();
}
q153367618 2010-07-07
  • 打赏
  • 举报
回复
学习 学习
dotnet201 2010-07-07
  • 打赏
  • 举报
回复
这个是要用JS来写的。选择Jquery就最好了。
步骤:
1:先定义一个var tr=“<tr>
<td><input id="Text1" type="text" /></td>
<td><select id="Select1"><option></option></select></td>
</tr>”;
2:点击Add按钮时,执行客户端事件.
$("#tableid").prepend(tr);
3:点击Save事件保存添加数据到数据库。因为是服务器端按钮有刷新的动作。所以要把添加的值保存到HiddenField控件中。然后再服务器端获取HiddenField中的值保存到数据库。或者利用ajax保存数据也行。

在这里不用Jquery用Javascript也行。效果是一样的。
wanghao111 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 a6711145 的回复:]
这样的问题,就用 javascript jquery 来做就好了,
没必要 扯上服务器控件
[/Quote]
没办法,这是个Enhancement,在以前的基础上修改
老Key 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 a6711145 的回复:]
这样的问题,就用 javascript jquery 来做就好了,
没必要 扯上服务器控件
[/Quote]对。。能节省尽量节省。。。
wwfgu00ing 2010-07-07
  • 打赏
  • 举报
回复
可以用jQuery的,你把textbox换成input 就可以了
很简单的
camperer 2010-07-07
  • 打赏
  • 举报
回复
这跟gridview这个控件无关了。。。
你可以在gridview以外的地方添加数据,然后重新绑定gridview
liZZZAAA 2010-07-07
  • 打赏
  • 举报
回复
这样的问题,就用 javascript jquery 来做就好了,
没必要 扯上服务器控件
zhubo006 2010-07-07
  • 打赏
  • 举报
回复
liyingjie5360 2010-07-07
  • 打赏
  • 举报
回复
学习
Up!!
a6711145 2010-07-07
  • 打赏
  • 举报
回复
这样的问题,就用 javascript jquery 来做就好了,
没必要 扯上服务器控件
wanghao111 2010-07-07
  • 打赏
  • 举报
回复
在前台使用<%#Eval("property")%>绑定的数据
加载更多回复(8)

62,046

社区成员

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

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

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

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