簡體   English   中英

如何使用此表中的值從數據庫中刪除行?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM