Изменить текст кнопки deleteCommand - PullRequest
1 голос
/ 05 августа 2010

У меня есть сетка, которая отображает информацию о пользователях.У меня есть commandColumn с редактированием, удалением команд.Удалить означает изменить статус пользователя на архив.Я хочу, чтобы кнопка «Удалить» в строках с пользователями с активным статусом и кнопка «Восстановить» (это может быть только изменение в тексте) в строках с пользователями с архивом статуса.

Как мне добиться такой функциональности?

Ответы [ 2 ]

3 голосов
/ 05 августа 2010

Такие задачи можно реализовать с помощью события CommandButtonInitialize ASPxGridView. Пример использования этого события доступен по адресу:

http://community.devexpress.com/blogs/aspnet/archive/2009/01/13/how-to-disable-command-buttons-in-aspxgridview.aspx

Это событие описано в нашей документации по адресу: http://documentation.devexpress.com/#AspNet/DevExpressWebASPxGridViewASPxGridView_CommandButtonInitializetopic

1 голос
/ 05 августа 2010

Предполагая, что в вашей сетке есть обычный CommandField, поместите следующий код в любое место после загрузки сетки (событие DataBound является хорошим местом):

foreach (GridViewRow row in MyGridView.Rows) {
    Button deleteButton = (Button)row.Cells(0).Controls(0);
    if (statusOnThisRowIsActive) {
        deleteButton.Text = "Active";
    } else {
        deleteButton.Text = "Restore";
    }
}

Важно отметить, что .Cells(0).Controls(0) часть должна быть определена вручную для вашей сетки - возможно, ваша кнопка удаления не является первым элементом управления в первой ячейке.Поскольку жесткое программирование расположения кнопки удаления делает это решение хрупким, на самом деле лучше использовать обычную кнопку в сетке, поскольку затем вы можете использовать FindControl, чтобы получить ссылку на нее и изменить текст.

В сетке:

<asp:TemplateField>
    <asp:Button ID="btnDelete" runat="server" Text="Active" />
</asp:TemplateField>

В коде позади:

foreach (GridViewRow row in MyGridView.Rows) {
    Button deleteButton = row.FindControl("btnDelete");
    if (row != null && !statusOnThisRowIsActive()) {
        deleteButton.Text = "Restore";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...