将图像和悬停图像设置为 <asp:CommandField ButtonType="Button" .../asp>

Set image and hover image to <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=""/>

当我将鼠标悬停在它上面时它会随着其他图像而变化,例如将灰色铅笔变成红色铅笔。但是当我点击编辑按钮时,它会显示两个按钮作为更新和取消。但是使用相同的编辑图像。

首先要尝试的是将 ButtonType="Button" 切换为 ButtonType="Image"。原因是您的 ImageUrl 属性不会出现,除非您将其设置为 Image

我怀疑您在 CSS class modifica_hover 中设置了 铅笔 图像。此 class 将应用于 EditCancel 按钮。这可能就是为什么你看到他们两个都用铅笔的原因。

您可能想尝试的另一种方法是将此字段创建为 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>