repeater的编辑,更新,删除

本文介绍了一个使用ASP.NET Repeater控件实现的增删改查功能示例,展示了如何通过Repeater控件结合数据库操作实现动态表格,并利用LinkButton触发不同事件完成数据编辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台:

  1. <asp:Repeater id="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound" OnItemCommand="Repeater1_ItemCommand">
  2.          <ItemTemplate>
  3.             <asp:Panel ID="plItem" runat="server">
  4.             <tr>
  5.                 <td><%# DataBinder.eval_r(Container.DataItem,"userid") %></td>
  6.                 <td><%# DataBinder.eval_r(Container.DataItem,"username") %></td>
  7.                 <td>
  8.                     <asp:LinkButton runat="server" ID="lbtEdit" CommandArgument='<%# DataBinder.eval_r(Container.DataItem, "userid")%>'
  9.                      CommandName="Edit" Text="编辑"></asp:LinkButton>&nbsp;&nbsp;&nbsp;
  10.                     <asp:LinkButton runat="server" ID="lbtDelete" CommandArgument='<%# DataBinder.eval_r(Container.DataItem, "userid")%>'
  11.                      CommandName="Delete" Text="删除"></asp:LinkButton>
  12.                 </td>
  13.             </tr>
  14.             </asp:Panel>
  15.             
  16.             <asp:Panel ID="plEdit" runat="server">
  17.             <tr>
  18.                 <td><%# DataBinder.eval_r(Container.DataItem,"userid") %></td>
  19.                 <td><asp:TextBox ID="UserName" Text='<%# DataBinder.eval_r(Container.DataItem,"username") %>' runat="server"></asp:TextBox></td>
  20.                 <td>
  21.                     <asp:LinkButton runat="server" ID="lbtUpdate" CommandArgument='<%# DataBinder.eval_r(Container.DataItem, "userid")%>'
  22.                      CommandName="Update" Text="更新"></asp:LinkButton>&nbsp;&nbsp;&nbsp;
  23.                     <asp:LinkButton runat="server" ID="lbtCancel" CommandArgument='<%# DataBinder.eval_r(Container.DataItem, "userid")%>'
  24.                      CommandName="Cancel" Text="取消"></asp:LinkButton>
  25.                  </td>
  26.             </tr>
  27.             </asp:Panel>           
  28.          </ItemTemplate>
  29.       </asp:Repeater>

后台:

  1.     public int id = 0;
  2.     protected void Page_Load(object sender, EventArgs e)
  3.     {
  4.         if (!IsPostBack)
  5.         {
  6.             BindGrid();
  7.         }
  8.     }
  9.     private void BindGrid()
  10.     {
  11.         string sql = "select top 5 * from [user] order by userid desc";
  12.         OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("test.mdb"));
  13.         OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);
  14.         DataSet ds = new DataSet();
  15.         
  16.         da.Fill(ds, "temp");
  17.         Repeater1.DataSource = ds.Tables["temp"];
  18.         Repeater1.DataBind();
  19.     }

  20.     protected void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
  21.     {
  22.         if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  23.         {
  24.             DataRowView rowv = (DataRowView)e.Item.DataItem;
  25.             string userid = rowv["userid"].ToString();
  26.             if (userid != id.ToString())
  27.             {
  28.                 ((Panel)e.Item.FindControl("plItem")).Visible = true;
  29.                 ((Panel)e.Item.FindControl("plEdit")).Visible = false;
  30.             }
  31.             else
  32.             {
  33.                 ((Panel)e.Item.FindControl("plItem")).Visible = false;
  34.                 ((Panel)e.Item.FindControl("plEdit")).Visible = true;
  35.             }
  36.         }
  37.     }

  38.     protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
  39.     {
  40.         if (e.CommandName == "Edit")
  41.         {
  42.             id = int.Parse(e.CommandArgument.ToString());
  43.         }
  44.         else if (e.CommandName == "Cancel")
  45.         {
  46.             id = -1;
  47.         }
  48.         else if (e.CommandName == "Update")
  49.         {
  50.             //Update.
  51.             string username = ((TextBox)this.Repeater1.Items[e.Item.ItemIndex].FindControl("UserName")).Text.Trim();
  52.             this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "key", "alert('更新ID:" + e.CommandArgument + ";页面值:姓名=" + username + "');", true);
  53.         }
  54.         else if (e.CommandName == "Delete")
  55.         {
  56.             //Delete.            
  57.             this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "key", "alert('删除ID:" + e.CommandArgument + "');", true);
  58.         }
  59.         BindGrid();
  60.     }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值