[英]How can I use the value in this table to delete the row from the database?
因此,我正在學習ASP.NET,在嘗試創建一個連接到sqlite數據庫並允許從該網頁修改該數據庫的網頁時遇到了障礙。 當前,FindControl返回NULL,並且我試圖使用同一行中的Delete按鈕刪除該行。 另外,表格將要改變大小,所以我不確定如何制作表格,以使按鈕和行始終保持對應。
另外,當我在開發人員工具中的頁面和表格中查看第一列中每個元素的td標簽的id時,其格式分別為id =“ Repeater1_id_0”,然后id =“ Repeater1_id_1”等。我正在測試以查看如果我可以使按鈕在第三行工作,但仍然為空。
這是.aspx文件中網頁數據庫中表的代碼。
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
<HeaderTemplate>
<table border="1">
<tr>
<td><b>ID</b></td>
<td><b>Player</b></td>
<td><b>Points</b></td>
<td><b>Steals</b></td>
<td><b>Blocks</b></td>
<td><b>Assists</b></td>
<td><b>MPG</b></td>
<td><b>Shot %</b></td>
<td><b>3 Point %</b></td>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td runat="server" id="id"><%# DataBinder.Eval(Container.DataItem, "id") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "playername") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "points") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "steals") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "blocks") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "assists") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "MPG") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "shootingpercentage") %> </td>
<td><%# DataBinder.Eval(Container.DataItem, "threepointpercentage") %> </td>
<td><asp:Button ID="btnEdit" runat="server" Text="Edit" /></td>
<td><asp:Button ID="btnDelete" runat="server" Text="Delete" OnClick="btnDelete_click" /></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:Repeater>
現在,這里是在aspx.cs文件中單擊刪除按鈕時將執行的操作的代碼。 它不起作用,但希望它能提供有關我正在嘗試執行的操作的見解。
protected void btnDelete_click(object sender, EventArgs e)
{
NBAPlayerRepository players = new NBAPlayerRepository();
HtmlGenericControl playerId = (HtmlGenericControl)Page.FindControl("Repeater1_id_2");
var id =Guid.Parse( playerId.ToString());
players.DeleteRecord(id);
DataTable table = players.GetAll();
this.Repeater1.DataSource = table;
this.Repeater1.DataBind();
}
我是這個東西的初學者,所以希望我並沒有把它弄得太糟。
在ASP.Net Repeater控件中處理按鈕單擊的正確方法是:
(1)適當設置按鈕CommandName
參數,例如在您的情況下為“刪除”。
(2)處理Repeater控件上的ItemCommand
事件。 檢查事件參數對象上的CommandName
屬性。 如果這等於“刪除”,則可以處理刪除,並且可以通過查看事件參數對象的Item屬性來獲取數據(行)上下文。
正如其他人已經提到的, FindControl
僅適用於服務器控件,並且在任何情況下都假定不建議使用重復項的標識符格式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.