asp.net中DetailsView的使用方法

aspx页面:

  

复制代码 代码如下:

  <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" Height="50px"

  Width="500px" OnModeChanging="DetailsView1_ModeChanging" OnItemDeleting="DetailsView1_ItemDeleting"

  OnItemUpdating="DetailsView1_ItemUpdating" OnItemInserting="DetailsView1_ItemInserting">

  <Fields>

  <asp:TemplateField HeaderText="ID">

  <ItemTemplate>

  <%#Eval("Id") %>

  </ItemTemplate>

  <InsertItemTemplate>

  <asp:TextBox ID="txtInsertId" Text="InsertId" runat="server"/>

  </InsertItemTemplate>

  <EditItemTemplate>

  <%#Eval("Id") %>

  </EditItemTemplate>

  </asp:TemplateField>

  <asp:TemplateField HeaderText="Title">

  <ItemTemplate>

  <%#Eval("Title") %>

  </ItemTemplate>

  <InsertItemTemplate>

  <asp:TextBox ID="txtInsertTitle" Text="InsertTitle" runat="server"/>

  </InsertItemTemplate>

  <EditItemTemplate>

  <asp:TextBox ID="txtEditTitle" Text='<%# Eval("Title") %>' runat="server"/>

  </EditItemTemplate>

  </asp:TemplateField>

  <asp:TemplateField HeaderText="Context">

  <ItemTemplate>

  <%# Eval("LogContext") %>

  </ItemTemplate>

  <InsertItemTemplate>

  <asp:TextBox ID="txtInsertLogContext" Text="InsertLogContext" runat="server"/>

  </InsertItemTemplate>

  <EditItemTemplate>

  <asp:TextBox ID="txtEditLogContext" Text='<%# Eval("LogContext") %>' runat="server"/>

  </EditItemTemplate>

  </asp:TemplateField>

  <asp:TemplateField HeaderText="操作">

  <ItemTemplate>

  <asp:Button ID="btnEdit" runat="server" CausesValidation="False"

  CommandName="Edit" Text="编辑" />

  <asp:Button ID="btnNew" runat="server" CausesValidation="False"

  CommandName="New" Text="新建" />

  <asp:Button ID="btnDelete" runat="server" CausesValidation="False"

  CommandName="Delete" Text="删除" OnClientClick="return confirm('确定要更新该学生信息吗?');" />

  </ItemTemplate>

  <InsertItemTemplate>

  <asp:Button ID="btnInsert" runat="server" CausesValidation="True"

  CommandName="Insert" Text="插入" />

  <asp:Button ID="btnCancel" runat="server" CausesValidation="False"

  CommandName="Cancel" Text="取消" />

  </InsertItemTemplate>

  <EditItemTemplate>

  <asp:Button ID="btnUpdate" runat="server" CausesValidation="True"

  CommandName="Update" Text="更新" OnClientClick="return confirm('确定要更新该学生信息吗?');" />

  <asp:Button ID="btnCancel2" runat="server" CausesValidation="False"

  CommandName="Cancel" Text="取消" />

  </EditItemTemplate>

  </asp:TemplateField>

  </Fields>

  </asp:DetailsView>

  CS文件:

  

复制代码 代码如下:

  using System;

  using System.Data;

  using System.Configuration;

  using System.Web;

  using System.Web.Security;

  using System.Web.UI;

  using System.Web.UI.WebControls;

  using System.Web.UI.WebControls.WebParts;

  using System.Web.UI.HtmlControls;

  using System.Collections.Generic;

  public partial class _Default : System.Web.UI.Page

  {

  protected void Page_Load(object sender, EventArgs e)

  {

  if (!IsPostBack)

  {

  DataToBing();

  }

  }

  private void DataToBing()

  {

  this.DetailsView1.DataSource = DataGridSource();

  this.DetailsView1.DataBind();

  }

  private List<Log> DataGridSource()

  {

  List<Log> logs = new List<Log>();

  for (int i = 1; i < 11; i++)

  {

  Log log = new Log();

  log.Id = i;

  log.Title = "标题" + i;

  log.LogContext = "内容" + i;

  logs.Add(log);

  }

  return logs;

  }

  public class Log

  {

  private int id;

  public int Id

  {

  get { return id; }

  set { id = value; }

  }

  private string title;

  public string Title

  {

  get { return title; }

  set { title = value; }

  }

  private string logContext;

  public string LogContext

  {

  get { return logContext; }

  set { logContext = value; }

  }

  }

  protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)

  {

  this.DetailsView1.ChangeMode(e.NewMode);

  DataToBing();

  }

  protected void DetailsView1_ItemDeleting(object sender, DetailsViewDeleteEventArgs e)

  {

  Response.Write("删除操作");

  }

  protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)

  {

  TextBox tbTitle = (TextBox)this.DetailsView1.FindControl("txtEditTitle");

  TextBox tbLogContext = (TextBox)this.DetailsView1.FindControl("txtEditTitle");

  Response.Write("更新操作 : Title : " + tbTitle.Text + " : LogContext : " + tbLogContext.Text);

  }

  protected void DetailsView1_ItemInserting(object sender, DetailsViewInsertEventArgs e)

  {

  Response.Write("插入操作 : ");

  }

  }