Установите изображение и изображение при наведении на <asp: CommandField ButtonType = "Button"... / asp>

У меня есть это

  <asp:CommandField ButtonType="Button" CancelImageUrl="~/img/annulla_grigio.png" EditImageUrl="~/img/modifica_grigio.png"
                                        ShowEditButton="True" UpdateText="" UpdateImageUrl="~/img/salva_grigio.png" ItemStyle-HorizontalAlign="center"
                                        ItemStyle-CssClass="tabella_p_modifica" ControlStyle-CssClass="modifica_hover" EditText=""/>

И это работает, когда я нахожу его на другое изображение, например, меняю серый карандаш на красный. Но когда я нажимаю кнопку "Изменить", отображаются две кнопки "Обновить" и "Отмена". Но с тем же изображением редактировать.

Образ

1 ответ

Решение

Первое, что нужно попробовать, это переключиться ButtonType="Button" в ButtonType="Image", Причина в том, что ваш ImageUrl свойства не появятся, если вы не установите для этого изображения

Я подозреваю, что вы устанавливаете изображение карандаша внутри вашего класса CSS modifica_hover, Этот класс будет применяться к кнопкам " Редактировать" и " Отмена". Наверное, поэтому вы видите карандаш для них обоих.

Альтернативой, которую вы можете попробовать, является создание этого поля как TemplateField что дает вам больше контроля. Просто убедитесь, что передали правильный CommandName для события, чтобы вызвать GridView событие.

<asp:TemplateField>
    <ItemTemplate>
        <asp:ImageButton ID="ibEdit" runat="server" CommandName="Edit" ImageUrl="~/img/modifica_grigio.png" />
    </ItemTemplate>
    <EditItemTemplate>
        <asp:ImageButton ID="ibUpdate" runat="server" CommandName="Update" ImageUrl="~/img/salva_grigio.png" />
        <asp:ImageButton ID="ibCancel" runat="server" CommandName="Cancel" ImageUrl="~/img/annulla_grigio.png" />
    </EditItemTemplate>
</asp:TemplateField>
Другие вопросы по тегам