ASP.NET - программно сгенерированная кнопка удаления - PullRequest
0 голосов
/ 17 апреля 2010

Я пытаюсь создать простую кнопку, которая удаляет строку из базы данных. Я хотел бы установить идентификатор элемента управления, например, delete_MATERIALID_button, когда я делаю это:

<asp:Button ID='delete_<%# Eval("MatID") %>_button' runat="server" Text="Delete" />

Я получаю сообщение об ошибке, что имя не может быть сгенерировано таким образом.

Я знаю, что должно быть простое решение, я просто не могу его понять.

Ответы [ 4 ]

4 голосов
/ 17 апреля 2010

Кнопка должна быть названа так:

<asp:Button ID='<%# Eval("MatID", "delete_{0}_button") %>' runat="server" Text="Delete" />

Но, как сказал Шувайи, использование CommandArgument, вероятно, является лучшим местом для идентификатора.

CommandArgument='<%# Eval("MatID")%>'
2 голосов
/ 17 апреля 2010

Почему бы не сохранить идентификатор в CommandArgument, чтобы легче было иметь дело с

0 голосов
/ 29 апреля 2010

Вы также можете добавить значение аргумента команды в событие повторителя OnItemDataBound. В этом случае у вас есть доступ к элементу данных, поэтому очень легко извлечь идентификатор из объекта элемента данных, найти текущую кнопку удаления для текущей привязываемой строки и применить аргумент команды к этому элементу управления.

Например:

    protected void rptrExample_OnItemDataBound(object Sender, RepeaterItemEventArgs Args)
    {
        if (Args.Item.ItemType == ListItemType.Item || Args.Item.ItemType == ListItemType.AlternatingItem)
        {
            SomeBusinessObj Obj = (SomeBusinessObj)Args.Item.DataItem;

            Button btnDelete = (Button)Args.Item.FindControl("btnDelete");
            btnDelete.CommandArgument = Obj.ID;
        }
    }
0 голосов
/ 17 апреля 2010

вы не можете сделать это так, вам нужно указать идентификатор исправления и имя команды (например, delete), и вы можете передать этот идентификатор в аргументе команды ... и при событии onCommand вы получите эти значения, имя команды и аргумент команды ...

ниитн дхиман

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...