Die Repeater-Steuerung implementiert Bearbeitungs-, Aktualisierungs- und Löschvorgänge

巴扎黑
Freigeben: 2017-04-30 10:22:51
Original
4517 Leute haben es durchsucht

Wie implementiert man dieselben Bearbeitungs-, Aktualisierungs- und Löschfunktionen wie das GridView-Steuerelement im Repeater-Steuerelement?

Das Folgende ist ein Beispiel, das unter vs.net2008 (C#) geschrieben wurde. Von admin10000.com

Backend-CS-Code

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");
}
Nach dem Login kopieren

Frontend.aspx-Code

<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=&#39;<%# DataBinder.Eval(Container.DataItem, "UserId")%>&#39;
                     CommandName="Edit" Text="编辑"></asp:LinkButton>  
                    <asp:LinkButton runat="server" ID="lbtDelete" CommandArgument=&#39;<%# DataBinder.Eval(Container.DataItem, "UserId")%>&#39;
                     CommandName="Delete" Text="删除" OnClientClick="return confirm(&#39;确定要删除?&#39;)"></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=&#39;<%# DataBinder.Eval(Container.DataItem,"Name") %>&#39;
                            runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:TextBox ID="txtEmail" Text=&#39;<%# DataBinder.Eval(Container.DataItem,"Email") %>&#39;
                            runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <asp:TextBox ID="txtQQ" Text=&#39;<%# DataBinder.Eval(Container.DataItem,"QQ") %>&#39; runat="server"></asp:TextBox>
                    </td>
                    <td>
                        <%# DataBinder.Eval(Container.DataItem, "AddTime","{0:yyyy-MM-dd}")%>
                    </td>
                    <td>
                      <asp:LinkButton runat="server" ID="lbtUpdate" CommandArgument=&#39;<%# DataBinder.Eval(Container.DataItem, "UserId")%>&#39;
                     CommandName="Update" Text="更新"></asp:LinkButton>  
                    <asp:LinkButton runat="server" ID="lbtCancel" CommandArgument=&#39;<%# DataBinder.Eval(Container.DataItem, "UserId")%>&#39;
                     CommandName="Cancel" Text="取消"></asp:LinkButton>
                    </td>
                </tr>
            </asp:Panel>
        </ItemTemplate>
        <FooterTemplate>
            </tbody></table>
        </FooterTemplate>
    </asp:Repeater>
</form>
Nach dem Login kopieren

Codebeispiel herunterladen: Die Repeater-Steuerung implementiert Bearbeitungs-, Aktualisierungs- und LöschvorgängePageDemo.RAR

Zugehörige Dokumente: Paging-Implementierung der Repeater-Steuerung. Methode zur Anzeige von Trennzeichen in mehreren Intervallen in Repeater. Verwenden Sie Repeater

zum Verschachteln in Repeater

Das obige ist der detaillierte Inhalt vonDie Repeater-Steuerung implementiert Bearbeitungs-, Aktualisierungs- und Löschvorgänge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!