向中继器添加数据库行更新和删除功能
本文关键字:删除 功能 更新 中继器 添加 数据库 | 更新日期: 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
}