Repeater控制元件實現編輯、更新、刪除操作
如何在Repeater控制元件中實現像GridView控制元件一樣的編輯、更新、刪除功能?
下面給出示例 vs.net2008(C#)下編寫。來自 admin10000.com
後臺.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>
下載程式碼示例: PageDemo.RAR
相關文件: Repeater控制元件的分頁實現 Repeater多行間隔顯示分隔符的方法 Repeater中巢狀使用Repeater
相關文章
- ASP.NET中利用Repeater實現增刪改操作ASP.NET
- UITableView的代理方法,實現編輯、刪除、排序、多選UIView排序
- Repeater控制元件的分頁實現控制元件
- 如何實現 Logstash/Elasticsearch 與MySQL自動同步 更新操作 和 刪除操作 ?ElasticsearchMySql
- Spring boot+Mybatisplus用AR模式實現邏輯刪除操作Spring BootMyBatis模式
- collectionView--編輯全選刪除View
- MongoDB 集合的插入、更新、刪除操作MongoDB
- MyBatis-Plus之邏輯刪除的實現MyBatis
- windows10更新助手怎麼刪除_windows10更新助手刪除操作方法Windows
- ASP.NET中Repeater控制元件實現分頁功能ASP.NET控制元件
- jQuery實現的表格新增或者刪除行操作jQuery
- 仿 iOS 列表的編輯功能 – 刪除篇iOS
- 仿 iOS 列表的編輯功能 - 刪除篇iOS
- Excel表格新增編輯或刪除批註Excel
- 可編輯選擇、刪除條目的ListViewView
- vue對table的某一行的資料進行編輯,刪除操作Vue
- mysql刪除和更新操作對效能的影響MySql
- 怎樣刪除w10更新檔案提示_win10更新檔案提示刪除如何操作Win10
- 改造layui-樹(tree)元件的新增、編輯、刪除操作(補充上一篇)UI元件
- php+redis實現註冊、刪除、編輯、分頁、登入、關注等功能示例PHPRedis
- 單連結串列的插入刪除操作(c++實現)C++
- Git.Framework 框架隨手記--ORM編輯刪除GitFramework框架ORM
- 刪除編輯檔案警告Swap file “…” already exists!
- 新增了自定義的編輯和刪除按鈕
- Yii 1.0資料庫操作 查詢、增加、更新、刪除資料庫
- SQL的資料庫操作:新增、更新、刪除、查詢SQL資料庫
- Java後端--29--Mybatis的更新和刪除操作Java後端MyBatis
- win10更新失敗記錄怎麼刪除_win10更新失敗記錄刪除操作方法Win10
- Java PDF書籤——新增、編輯、刪除、讀取書籤Java
- Laravel-admin 中列表中禁止某行編輯、刪除Laravel
- 使用PagedDataSource類實現DataList和Repeater控制元件的分頁顯示 (轉)控制元件
- C#控制元件之Repeater控制元件使用C#控制元件
- win10如何刪除系統更新臨時檔案_windows10更新刪除臨時檔案操作方法Win10Windows
- jquery實現增加刪除行jQuery
- 實現 UITableViewCell的批量刪除UIView
- Laravel 軟刪除操作Laravel
- java實現編輯器(一)Java
- 向量圖形編輯控制元件控制元件