使用 ASP+ DataGrid 控件来创建主视图/详细资料视图

时间:2010-03-15 12:18:46  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:容对应的书名    // 网格    protected void LoadTitlesGrid() {    UpdateSelection();    titlesGrid.DataBind();    }       // 处理书名网格中的 CancelCommand 事件,以    // 不施用更改就结束编辑    protected void OnCance...
  正文:Step6Page.cs:
  
  namespace Samples {
   ...
  
   public class Step6Page : Page {
  
   // 更新当前选定的作者并重新加载与选定内容对应的书名
   // 网格
   protected void LoadTitlesGrid() {
   UpdateSelection();
   titlesGrid.DataBind();
   }
  
   // 处理书名网格中的 CancelCommand 事件,以
   // 不施用更改就结束编辑
   protected void OnCancelCommandTitlesGrid(object sender,
   DataGridCommandEventArgs e) {
   titlesGrid.EditItemIndex = -1;
   LoadTitlesGrid();
   }
  
   // 处理书名网格中的 EditCommand 事件,以
   // 开始编辑某一行
   protected void OnEditCommandTitlesGrid(object sender,
   DataGridCommandEventArgs e) {
   titlesGrid.EditItemIndex = e.Item.ItemIndex;
   LoadTitlesGrid();
   }
  
   // 处理书名网格中的 UpdateCommand 事件,以施用
   // 所作的更改并结束编辑
   protected void OnUpdateCommandTitlesGrid(object sender,
   DataGridCommandEventArgs e) {
   TextBox priceText =
   (TextBox)e.Item.FindControl("Column3Control");
   string newPrice = priceText.Text.Substring(1);
  
   DataSet ds = GetSessionData();
   DataTable titlesTable = ds.Tables["Title"];
  
   string titleID =
   (string)titlesGrid.DataKeys[e.Item.ItemIndex];
   DataRow[] rows = titlesTable.Select("title_id = '" +
   titleID + "'");
   DataRow editRow = rows[0];
  
   editRow.BeginEdit();
   editRow["price"] = newPrice;
   editRow.EndEdit();
   editRow.AcceptChanges();
   titlesGrid.EditItemIndex = -1;
   LoadTitlesGrid();
   }
   }
  }
  
  EditCommand 事件是在单击 Edit 按钮时引发的。只需将 DataGrid 的 EditItemIndex 属性设定为包含被单击按钮的项目的索引的属性。要防止编辑某一个别行,不采取任何动作就返回。另外,要继续进行编辑,就必须重新加载数据源并调用 DataBind。这通过调用 LoadTitlesGrid 方法来完成。
  
  您必须处理的第二个事件就是 CancelCommand 事件。这是单击 Cancel 按钮时引发的。实施十分类似于前一处理器。如想结束编辑,则只需将 EditItemIndex 属性重置为 ?,并重新加载数据源。如果需要维持行的编辑模式,则仅需不采取任何动作就从函数返回即可。
  
  要处理的最后一个事件就是 UpdateCommand 事件,这是单击 Update 按钮时引发的。这里是实际工作发生的地方。从存在于项目中的控件抽取新的值,然后更新数据源。一旦将新的值使用完毕,就将 EditItemIndex 重置为 ?,以返回到只读模式,并连同其数据源一起重新加载控件。对于前两个事件,您可以不采取任何动作就从该函数返回,以保持该行的编辑模式状态。
  
  这一步又再次举例说明控件中实施的显式数据绑定模型。在这一实施情形中,只在某行的状态从只读模式更改为编辑模式或相反时才需要数据源。注意, DataGrid 自身并不更新其数据源。实质上,数据绑定是单向的。采用本模型的目的在于让您拥有对数据源更新的控制。在大多数典型的应用程序中,更新需要预处理,并且是由业务对象或已存储的过程来调用的。另外,单向数据绑定并不要求每个时间都有实时的数据源。
  
  
  第 7 步: 使用模板
  
  DataGrid 控件通过使用 TemplateColumns,支持列内模板。可以完全自由地决定与这些列相关联的单元格的内容。这一步使用 TemplateColumn 来增强首先在前一步中实施的编辑支持。
  

使用 ASP+ DataGrid 控件来创建主视图/详细资料视图》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13224.html


关键字:

关于《使用 ASP+ DataGrid 控件来创建主视图/详细资料视图》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td