小编给大家分享一下Repeater控件实现编辑、更新、删除操作的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
后台.cs代码
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");
}
前台.aspx代码
<form id="form1" runat="server">
<asp:Repeater ID="rptUser" runat="server" onitemcommand="rptUser_ItemCommand"
onitemdatabound="rptUser_ItemDataBound">
<HeaderTemplate>
<table width="960" align="center" cellpadding="3" cellspacing="1" style="background-color: #ccc;">
<thead style="background-color: #eee;">
<tr>
<th width="10%">
用户ID
</th>
<th>
用户名
</th>
<th width="22%">
邮件
</th>
<th width="20%">
QQ
</th>
<th width="15%">
注册时间
</th>
<th width="12%">
操作
</th>
</tr>
</thead>
<tbody style="background-color: #fff;">
</HeaderTemplate>
<ItemTemplate>
<asp:Panel ID="plItem" runat="server">
<tr style="text-align: center;">
<td>
<%# DataBinder.Eval(Container.DataItem, "UserId")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "Name")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "Email")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "QQ")%>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "AddTime","{0:yyyy-MM-dd}")%>
</td>
<td> <asp:LinkButton runat="server" ID="lbtEdit" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "UserId")%>'
CommandName="Edit" Text="编辑"></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtDelete" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "UserId")%>'
CommandName="Delete" Text="删除" OnClientClick="return confirm('确定要删除?')"></asp:LinkButton>
</td>
</tr>
</asp:Panel>
<asp:Panel ID="plEdit" runat="server">
<tr style="text-align: center;">
<td>
<%# DataBinder.Eval(Container.DataItem, "UserId")%>
</td>
<td>
<asp:TextBox ID="txtName" Text='<%# DataBinder.Eval(Container.DataItem,"Name") %>'
runat="server"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtEmail" Text='<%# DataBinder.Eval(Container.DataItem,"Email") %>'
runat="server"></asp:TextBox>
</td>
<td>
<asp:TextBox ID="txtQQ" Text='<%# DataBinder.Eval(Container.DataItem,"QQ") %>' runat="server"></asp:TextBox>
</td>
<td>
<%# DataBinder.Eval(Container.DataItem, "AddTime","{0:yyyy-MM-dd}")%>
</td>
<td>
<asp:LinkButton runat="server" ID="lbtUpdate" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "UserId")%>'
CommandName="Update" Text="更新"></asp:LinkButton>
<asp:LinkButton runat="server" ID="lbtCancel" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "UserId")%>'
CommandName="Cancel" Text="取消"></asp:LinkButton>
</td>
</tr>
</asp:Panel>
</ItemTemplate>
<FooterTemplate>
</tbody></table>
</FooterTemplate>
</asp:Repeater>
</form>
看完了这篇文章,相信你对Repeater控件实现编辑、更新、删除操作的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。