如何在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>

您可能感兴趣的文章:

  • asp.net使用Repeater控件中的全选进行批量操作实例
  • ASP.NET中repeater控件用法实例
  • 在Repeater控件中通过Eval的方式绑定Style样式代码
  • Repeater控件与PagedDataSource结合实现分页功能
  • 给Repeater控件里添加序号的5种才常见方法介绍
  • Repeater控件绑定的三种方式
  • Repeater控件动态变更列(Header,Item和Foot)信息实现思路
  • 如何取得Repeater控件选择的项目及注意事项
  • Repeater控件分别绑定数组和ArrayList实现思路
  • Repeater控件数据导出Excel(附演示动画)
  • 浅析Repeater控件的使用 (原样导出和动态显示/隐藏Repeater中的列)
声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。