如何在DataGrid中添加一行新记录

towdney 2005-10-03 07:04:21
如何做到按下一个添加按钮,然后datagrid中就新增加一行空行并可以输入内容,再保存更新。在C#中实现。
...全文
321 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luck0235 2005-10-04
  • 打赏
  • 举报
回复
同意二楼,可在DataTable中插入一行,然后重新BindGrid:
DataRow myDataRow = myDataTable.NewRow();
myDataRow["字段一"] = ...;
myDataRow["字段二"] = ...;
......
myDataTable.Rows.InsertAt(dw,0);
......
myDataGrid.DataSource = myDataTable;
myDataGrid.DataBind();
towdney 2005-10-04
  • 打赏
  • 举报
回复
有朋友能给代码吗?在C#上实现
gsp365 2005-10-04
  • 打赏
  • 举报
回复
1.在DATAGRID上点右键,选"属性生成器",选"列",点开"按纽列"选"选择",点">",在"文本(T)"中输入:<div id="de" onclick="JavaScript:return confirm('确定新增吗?')">新增</div>(这样在使用时点击"新增"(LINKBUTTON)时就会提示了),"命令名(O)"输入NEW,点"确定"保存修改.

2.在DATAGRID上点右键,选"属性",选触电标记,双击ITEMCOMMAND,页面跳转到如下:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

}

首先在public class orders : System.Web.UI.Page下加入:
public static int INEW=0;
然后加代码如下:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName=="NEW")//判定为新增
{
INEW=1;//设置开关,以便点"取消"按钮时删除该记录
.......//获得新的记录号
.....//更新远程数据,往绑定表里添加一条带新记录号的新记录(必须将其余字段赋""或赋0)
.......// 重新连接数据生成DATASET并绑定
.......//让新增加的记录在第一条
DataGrid1.EditItemIndex=0;//关键!!!将新增事件转为EDIT事件!!!
}
}
这样就实现了新增一条记录.

3.在DataGrid1_CancelCommand事件中加入:
private void DataGrid1_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if (INEW==1)判断是否是新增取消
{
INEW=0;//开关关上
..........//连接远程数据库删除当前记录! (将DataGrid1_DeleteCommand下的代码拷贝过来)
}
DataGrid1.EditItemIndex=-1;
.......// 重新连接数据生成DATASET并绑定
}
这样就实现了取消新增的功能.

4.保存修改后的新记录和Edit一样,是 DataGrid1_UpdateCommand.
在DataGrid1_UpdateCommand.中加上:
INEW=0;//开关关上,否则要酿成大错!


这样我们就完成了在DATAGRID添加新增按纽,并实现了新增功能!

抛砖引玉,不吝施教!

RoninBlade 2005-10-04
  • 打赏
  • 举报
回复
EditIndex设成最后一行,然后里面放textbox啊
towdney 2005-10-04
  • 打赏
  • 举报
回复
好,谢谢楼上兄弟。另外我想问问,如果按一个按钮,我希望能在DataGrid中最后一行显示空白行等待输入,请问如何做到让DataGrid最后显示空白行HeaderText等待输入。
towdney 2005-10-03
  • 打赏
  • 举报
回复
谢谢。不过最好有代码提供更好了。
hackate 2005-10-03
  • 打赏
  • 举报
回复
其实捏,你可以用DataSet啊。然后按一下添加一行的话,就往DataTable上加一个空行呗,然后添加好后,按更新,就把这些值建立个新的纪录,写进数据库呗!
NoThatNo 2005-10-03
  • 打赏
  • 举报
回复
一言难尽阿,到网上找代码,或者看微软的代码吧

62,052

社区成员

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

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

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

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