如何在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>
本文地址:https://www.stayed.cn/item/11516
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我