Repeater controls implement edit update delete and other operations such as sample code

  • 2020-10-07 18:38:08
  • OfStack

How to implement edit, update, delete functions like GridView control 1 in Repeater control?
 
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%"> 
 The user ID 
</</CODE>th> 
<</CODE>th> 
 The user name  
</</CODE>th> 
<</CODE>th width="22%"> 
 mail  
</</CODE>th> 
<</CODE>th width="20%"> 
QQ 
</</CODE>th> 
<</CODE>th width="15%"> 
 Registration time  
</</CODE>th> 
<</CODE>th width="12%"> 
 operation  
</</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> 

Related articles: