向中继器添加数据库行更新和删除功能

本文关键字:删除 功能 更新 中继器 添加 数据库 | 更新日期: 2023-09-27 18:18:08

我使用一个中继器来显示来自SQL Server数据库的数据,并为数据库中的每一行添加了按钮。

下面是填充中继器的代码:

 SqlConnection connR;
    string connectionStringR = ConfigurationManager.ConnectionStrings[
        "BallinoraDBConnectionString1"].ConnectionString;
    connR = new SqlConnection(connectionStringR);
    SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Events", connR);
    DataTable dt = new DataTable();
    sda.Fill(dt);
    Repeater1.DataSource = dt;
    Repeater1.DataBind();

这里是中继器代码:

 <asp:Repeater ID="Repeater1" runat="server">
                        <ItemTemplate>
                            <div>
                                <table>
                                    <tr><th><%#Eval("Event_Title")%></th><td><button>Edit</button></td><td><button>Delete</button></td></tr>
                                    <tr><td>Event Group ID</td><td><%#Eval("Event_Group_Id") %></td></tr>
                                    <tr><td>Event Type</td><td><%#Eval("Event_Type")  %></td></tr>
                                    <tr><td>Event ID</td><td><%#Eval("Event_Id")  %></td></tr>
                                    <br />
                                </table>
                            </div>
                        </ItemTemplate>
                    </asp:Repeater>

这是UI我不确定我应该在哪里为每一行添加编辑和删除代码,因为显示的事件数量是基于数据库中的行数。

向中继器添加数据库行更新和删除功能

首先,你可能应该改进一下你的问题,并遵循评论中的提示,但你可以这样开始:

<button onclick="delFunc('bowlingId');">Delete Bowling</button>

这将给你一个按钮上的文本,并添加一个onclick事件,为此你必须编写一个脚本函数。这意味着您必须从查询中获得一些Id,以标识数据库中的每个唯一事件。当你可以编写一些代码来删除唯一的行,并从页面上的脚本调用该函数时,如何做到这一点在很大程度上取决于你使用的是哪种后端,但一般的想法可能是这样的:

<head>
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
 <script>
  function delFunc(id) {
   $.ajax({
     method: "POST",
     url: "deleteEvent.php",
     data: id
   })
   alert('deleted '+ id +'!');
  }
 </script>
</head>

您将需要使用jQuery的$。Ajax调用工作。

希望这至少能让你开始学习:)

必须在gridview中完成。

如果你仍然希望这是在asp:label然后我建议你一件事。使用锚代替按钮,并使用querystring链接到相同的页面,如下面

lblGroupOneEvents.Text += "<div> <table> <tr><td>" + reader["Event_Title"] + "</td>" + "</tr><tr><td><a href='samepage.aspx?remove=" + reader["id"] + "'>Remove</a></td></tr></table> </div>";

在页面加载处理删除功能

if(Request.QueryString["remove"]!=null)
{
   //your delete code here
}