使用datagrid控件向数据源增加一条记录
datagrid控件允许用户查看和编辑记录,但内部不包含添加新记录的便利,但是,可以采取不同的方法来添加这个功能。下面的方法包含了如下步骤:
l 向datagrid的数据源(dataset or database)增加一个新的、空的记录,如果需要的话,还要为记录指定一个id并为每个不允许为空的列存入一个占位的值。
l 重绑定datagrid到数据源。
l 将datagrid转变为编辑模式,你需要能够知道新记录在datagrid中显示的位置。
l 使用普通的方式更新记录——用户单击“update”,然后将用户提供的值作为新的记录的值写回到数据源。
下面是添加新记录、绑定datagrid,以及将其转化为编辑模式的例子。该例中的数据
源是一个dataset(dsbook1),它包含了一个books表。
private void btnaddrow_click(object sender, system.eventargs e)
{
datarow dr = this.dsbooks1.books.newrow();
dr[“title”] = “(new)”;
dr[“instock”] = true;
this.dsbooks1.books.rows.insertat(dr, 0);
session[“dsbooks”] = dsbooks1;
datagrid1.edititemindex = 0;
datagrid1.databind();
}
需要注意的一些问题:
l 当用户点击也面中的某个“add”按钮时,这些代码就被执行。
l 新行通过newrow()方法生成,然后通过insertat()方法插入到dataset中的表,该方法允许将该行设定到一个具体的预先确定的位置——在这个例子中,它是表中的第一条记录(也就是rows集合中的第一行)。换种方式,你也可以通过设置行的数目值将其插入表尾。重要的是,要确切知道该行在表中的位置。
l 由于现在你已经知道该行在表中的第一个位置上,你可以通过将datagrid的编辑项索引设为0,从而将新行设置为编辑模式(如果你在表中的其他位置创建了新行,你可以将编辑项索引设为那个位置的值)。
l 现在在数据集中已经有了一条新的记录(但它还不是在数据库中),如果你不想从数据库重新填充datagrid从而丢失新的记录,就需要在提交—回传的过程中保留一个该数据集的副本。例子中通过代码将其保存在session中,当页加载时,需要重新从session中加载数据集。下例是page_load()事件句柄的一种可能形式:
private void page_load(object sender, system.eventargs e)
{
if(this.ispostback)
{
dsbooks1 = (dsbooks) session[“dsbooks”];
}
else
{
this.sqldataadapter1.fill(this.dsbooks1);
session[“dsbooks”] = dsbooks1;
this.datagrid1.databind();
}
}
(unfinished)
关于DataGrid Web控件的热门问题__连载之五-.NET教程,数据库应用
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 关于DataGrid Web控件的热门问题__连载之五-.NET教程,数据库应用
相关推荐
-      DataGrid中的按钮反选事件与NamingContainer(命名容器)-downmoon-ASP教程,数据库相关
-      根据数据表中数据,生成Powerpoint幻灯片-ASP教程,数据库相关
-      使用用VB处理MYSQL数据库中二进制数据问题-.NET教程,VB.Net语言
-      关于DataGridView中如何接收处于编辑状态下的当前信息-ASP教程,数据库相关
-      ActiveMQ4.1+Spring2.0的POJO JMS方案(上)-.NET教程,数据库应用
-      ASP.NET 2.0中直接将Access数据库导入到Excel文件中-.NET教程,Asp.Net开发
-      DataGrid的多行提交-.NET教程,数据库应用
-      一个简单的asp数据库操作类-ASP教程,数据库相关