Удаление записи с использованием ASP.NET Repeater и Entity Framework - PullRequest
1 голос
/ 15 марта 2012

У меня есть объект 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. Свяжите столбец идентификатора с повторителем, как, например, CommandName или CommandArgument.
  3. Измените способ привязки текста - поскольку повторитель теперь имеет два столбца.

Я знаю, как обновить EntitySQL, но я всегда путаюсь с получением этой информации. в ретранслятор ... помогите?

1 Ответ

1 голос
/ 16 марта 2012

Я думаю, что вам нужно использовать функцию привязки в повторителе.

Текст кнопки использует "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>
...