Создать кнопки Удалить / Изменить для нескольких записей из linq, используя скрытое значение? - PullRequest
1 голос
/ 19 августа 2009

Форма Aspx:

<asp:Table ID="viewV" runat="server">
  <asp:TableRow>
    <asp:TableHeaderCell>Name</asp:TableHeaderCell>
    <asp:TableHeaderCell>Type</asp:TableHeaderCell>
  </asp:TableRow>       
</asp:Table>

Код ниже:

vRepository getV = new vRepository();

var viewAllV = getV.GetV();

foreach (tblV singleV in viewAllV)
{
    TableRow tr = new TableRow();

    // Create four new cells for each row within the database

    TableCell vName = new TableCell();
    TableCell vType = new TableCell();

    // Attached values to each of these cells

    vName.Text = singleV.vName;
    vType.Text = singleV.tblVType.vName;

    // Add the cells to the table

    tr.Cells.Add(vName);
    tr.Cells.Add(vType);

    // Add the row to the table

    viewV.Rows.Add(tr);
}

В настоящее время я заполняю таблицу asp: с помощью LINQ, все работает нормально.

public IQueryable<tblV> GetV()
{
    return (from getAllV in dc.tblV
            where getAllV.deleted != 1
            orderby getAllV.vName
            select getAllV).DefaultIfEmpty();
}

Я пробовал GridView / ListView / DetailsView, но не могу получить доступ к GetV, я могу получить доступ только к фактической таблице.

Я хочу добавить кнопку редактирования / удаления в конец каждой строки, чтобы пользователь мог выбрать строку, которую он хочет отредактировать / удалить.

Как только пользователь выбрал любую кнопку редактирования / удаления, он должен получить доступ к другому представлению (одно для редактирования, одно для добавления - в том же файле aspx).

Например:

Name    Type

Example 1   Type 1  Edit Button Delete Button

Example 2   Type 1  Edit Button Delete Button

Я хочу иметь возможность выбрать кнопку «Изменить» для «Пример 1». Это должно тогда:

  1. Возьмите меня в «правку»,
  2. Автоматическое заполнение двух текстовых полей правильной информацией,
  3. Обновить строку (в базе данных) новой информацией, используя уникальный идентификатор (PK).

Почему я создал несколько кнопок редактирования / удаления, которые каким-то образом содержат уникальный идентификатор для этой строки?

Я думал, что это будет примерно так:

TableCell vEdit = new TableCell();
vEdit.Button = singleV.vID;
tr.Cells.Add(vEdit);

1 Ответ

1 голос
/ 20 августа 2009

Если вы действительно хотите «жестко закодировать» его, используйте ASP.NET MVC. В противном случае вам действительно следует использовать какой-то элемент управления с привязкой к данным.

Тем не менее, если вы настаиваете на этом подходе, вы, вероятно, можете сделать что-то вроде этого:

Button editButton = new Button();
editButton.Text = "Edit";
editButton.CommandArgument = singleV.vID.ToString();
editButton.CommandName = "Edit";
editButton.OnCommand += new CommandEventHandler(EditButton_Command);

TableCell vEdit = new TableCell();
vEdit.Controls.Add(editButton);

tr.Cells.Add(vEdit);

Затем из CommandEventArgs вашего обработчика событий вы можете получить аргумент и соответственно изменить свое представление.

...