萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> asp.net編程 >> Repeater控件實現編輯、更新、刪除等操作示例代碼

Repeater控件實現編輯、更新、刪除等操作示例代碼

 如何在Repeater控件中實現像GridView控件一樣的編輯、更新、刪除功能?下面有個不錯的示例,感興趣的朋友可以參考下,希望對大家有所幫助

代碼如下: protected void Page_Load(object sender, EventArgs e)  {  if (!Page.IsPostBack)  {  BindGrid();  }  }  private void BindGrid()  {  string strSQL = "SELECT * FROM [User]";  OleDbConnection objConnection = new OleDbConnection(GetStrConnection());  objConnection.Open();  OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);  OleDbDataReader reader = objCommand.ExecuteReader(CommandBehavior.CloseConnection);  rptUser.DataSource = reader;  rptUser.DataBind();  }  protected void rptUser_ItemDataBound(object sender, RepeaterItemEventArgs e)  {  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)  {  System.Data.Common.DbDataRecord record = (System.Data.Common.DbDataRecord)e.Item.DataItem;  int userId = int.Parse(record["UserId"].ToString());  if (userId != id)  {  ((Panel)e.Item.FindControl("plItem")).Visible = true;  ((Panel)e.Item.FindControl("plEdit")).Visible = false;  }  else  {  ((Panel)e.Item.FindControl("plItem")).Visible = false;  ((Panel)e.Item.FindControl("plEdit")).Visible = true;  }  }  }  protected void rptUser_ItemCommand(object source, RepeaterCommandEventArgs e)  {  if (e.CommandName == "Edit")  {  id = int.Parse(e.CommandArgument.ToString());  }  else if (e.CommandName == "Cancel")  {  id = -1;  }  else if (e.CommandName == "Update")  {  string name = ((TextBox)this.rptUser.Items[e.Item.ItemIndex].FindControl("txtName")).Text.Trim();  string email = ((TextBox)this.rptUser.Items[e.Item.ItemIndex].FindControl("txtEmail")).Text.Trim();  string qq = ((TextBox)this.rptUser.Items[e.Item.ItemIndex].FindControl("txtQQ")).Text.Trim();  string strSQL = "UPDATE [User] SET Name=@Name,Email=@Email,QQ=@QQ WHERE UserId=@UserId";  OleDbConnection objConnection = new OleDbConnection(GetStrConnection());  OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);  objCommand.Parameters.Add("@Name", OleDbType.VarWChar);  objCommand.Parameters["@Name"].Value = name;  objCommand.Parameters.Add("@Email", OleDbType.VarWChar);  objCommand.Parameters["@Email"].Value = email;  objCommand.Parameters.Add("@QQ", OleDbType.VarWChar);  objCommand.Parameters["@QQ"].Value = qq;  objCommand.Parameters.Add("@UserId", OleDbType.Integer);  objCommand.Parameters["@UserId"].Value = int.Parse(e.CommandArgument.ToString());  objConnection.Open();  objCommand.ExecuteNonQuery();  objConnection.Close();  }  else if (e.CommandName == "Delete")  {  string strSQL = "DELETE * FROM [User] WHERE UserId=@UserId";  OleDbConnection objConnection = new OleDbConnection(GetStrConnection());  OleDbCommand objCommand = new OleDbCommand(strSQL, objConnection);  objCommand.Parameters.Add("@UserId", OleDbType.Integer);  objCommand.Parameters["@UserId"].Value = int.Parse(e.CommandArgument.ToString());  objConnection.Open();  objCommand.ExecuteNonQuery();  objConnection.Close();  }  BindGrid();  }  private string GetStrConnection()  {  return "Provider=Microsoft.Jet.OleDb.4.0;data source=" + Server.MapPath("~/Database/test.mdb");  }    <</CODE>form id="form1" runat="server">  <</CODE>asp:Repeater ID="rptUser" runat="server" onitemcommand="rptUser_ItemCommand"  onitemdatabound="rptUser_ItemDataBound">  <</CODE>HeaderTemplate>  <</CODE>table width="960" align="center" cellpadding="3" cellspacing="1" style="background-color: #ccc;">  <</CODE>thead style="background-color: #eee;">  <</CODE>tr>  <</CODE>th width="10%">  用戶ID  </</CODE>th>  <</CODE>th>  用戶名  </</CODE>th>  <</CODE>th width="22%">  郵件  </</CODE>th>  <</CODE>th width="20%">  QQ  </</CODE>th>  <</CODE>th width="15%">  注冊時間  </</CODE>th>  <</CODE>th width="12%">  操作  </</CODE>th>  </</CODE>tr>  </</CODE>thead>  <</CODE>tbody style="background-color: #fff;">  </</CODE>HeaderTemplate>  <</CODE>ItemTemplate>  <</CODE>asp:Panel ID="plItem" runat="server">  <</CODE>tr style="text-align: center;">  <</CODE>td>   
copyright © 萬盛學電腦網 all rights reserved