中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
关于DataGrid Web控件的热门问题__连载之五
作者:未知 时间:2005-07-27 21:43 出处:CSDN 责编:chinaitpower
              摘要:关于DataGrid Web控件的热门问题__连载之五

使用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)


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有