如何使用此表中的值从数据库中删除行?

时间:2016-07-01 13:40:00

标签: c# html sqlite

所以我正在学习ASP.NET,我试图创建一个连接到sqlite数据库的网页,并允许从网页修改该数据库。目前FindControl返回NULL并且我试图能够删除同一行中带有删除按钮的行。此表也将改变尺寸,因此我不确定如何制作它以使按钮和行始终对应。

另外,当我在开发人员工具和表格中查看页面时,第一列中每个元素的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();

    }

我是这种东西的初学者,所以希望我没有把它打得太糟糕。

1 个答案:

答案 0 :(得分:0)

在ASP.Net Repeater控件中处理按钮单击的正确方法是:

(1)适当地设置Button CommandName参数,例如在您的情况下&#34;删除&#34;。

(2)处理Repeater控件上的ItemCommand事件。检查事件参数对象上的CommandName属性。如果这等于&#34;删除&#34;然后你可以处理删除,你可以通过查看事件参数对象的Item属性来获取数据(行)上下文。

正如其他人FindControl已经提到的那样,只适用于服务器控件,并且无论如何都不建议使用转发器项的标识符格式。