【问题标题】:Deleting Record Using ASP.NET Repeater and Entity Framework使用 ASP.NET 中继器和实体框架删除记录
【发布时间】:2012-03-15 17:43:48
【问题描述】:

我有一个名为 PendingPartners 的实体,它具有到 Residents 实体的导航属性。我从这些对象返回信息,如下所示:

 Dim getSent = (From p In dbContext.PendingPartners _
                       Join r In dbContext.Residents _
                       On p.people_id_des Equals r.people_code_id _
                       Where p.people_id_ini = people_id _
                       Where p.semester = semester _
                       Where p.year = year _
                       Select r.person_name).Distinct
        rptrSent.DataSource = getSent
        rptrSent.DataBind()

正如您在上面看到的,数据随后被绑定到转发器控件,其代码如下所示:

 <asp:Repeater ID="rptrSent" runat="server">
            <ItemTemplate>
                <asp:Button ID="btnDeletePartner" runat="server"
                    Text="<%# Container.DataItem %>"  />
                <br />
            </ItemTemplate>
        </asp:Repeater>

现在,我想这样做,以便当有人单击“删除”按钮时,它实际上会从实体中删除该记录 - 只是 PendingPartner 部分,无需汇总到 Resident 对象。

现在,要做到这一点,我认为我需要:

  1. 将 ID 列添加到 EntitySQL 查询,例如选择 p.id、r.person_name。
  2. 将 ID 列绑定到中继器,例如 CommandName 或 CommandArgument。
  3. 更改文本的绑定方式 - 因为转发器现在有两列。

我知道如何更新 EntitySQL,但我总是对获取此信息感到困惑。进入中继器...帮助?

【问题讨论】:

    标签: asp.net entity-framework entity-framework-4 repeater


    【解决方案1】:

    我认为您需要在转发器中使用绑定功能

    按钮的文本使用“person_name”,命令参数使用“id”,命令名称为“delete”。

    像这样:

     <asp:Repeater ID="rptrSent" runat="server">
            <ItemTemplate>
                <asp:Button ID="btnDeletePartner" runat="server"
                    Text='<%# bind("person_name") %>' CommandArgument='<%# bind("id") %>' CommandName="Delete"  />
                <br />
            </ItemTemplate>
        </asp:Repeater>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多