用Gridview中的图像按钮替换按钮列“删除”

时间:2011-09-02 12:02:02

标签: asp.net gridview datagrid

这是我的Gridview代码

<asp:DataGrid id="dg" runat="server" ondeletecommand="Delete_Item" >

        <columns>

        <asp:buttoncolumn buttontype="LinkButton" commandname="Delete" text="Remove" />

        </columns>
            <HeaderStyle BackColor="#95C736" ForeColor="White" Font-Bold="True" />
        </asp:DataGrid>

我想用图像替换我的按钮列,我必须对GridView做什么?

3 个答案:

答案 0 :(得分:5)

我会使用模板列:

<asp:DataGrid ID="DataGrid1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:TemplateColumn>
            <ItemTemplate>
                <asp:ImageButton ID="btnDelete" runat="server" ImageUrl="/images/delete.png" CommandName="Delete" />
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid> 

答案 1 :(得分:0)

使用TemplateColumn替换Button Column,允许您在其中放置标准的asp控件。然后,您可以正常处理Datagrid_ItemCommand事件。

    <asp:DataGrid ID="dgTest" runat="server">
        <Columns>
            <asp:TemplateColumn>
                <ItemTemplate>
                    <asp:ImageButton ID="ibtnDelete" runat="server" CommandName="cmdDelete"
                        ImageUrl="~/images/delete.png" />
                </ItemTemplate>
            </asp:TemplateColumn>
        </Columns>
    </asp:DataGrid>

ItemCommand处理程序类似于:

Protected Sub dgTest_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgTest.ItemCommand
    If (e.CommandName = "cmdDelete") Then
        Response.Write("the command argument was :" & e.CommandArgument)
    End If
End Sub

您需要做的唯一事情是将一些数据绑定到命令参数的图像按钮。我经常这样做:

Protected Sub dgTest_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgTest.ItemDataBound
    If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then
        Dim di As FAQTable = e.Item.DataItem
        DirectCast(e.Item.FindControl("ibtn"), ImageButton).CommandArgument = di.FAQID
    End If
End Sub

您还可以使用带有asp:超链接控件的asp:image控件来获得相同的结果。

答案 2 :(得分:0)

我刚刚做过的一件令人敬畏的事情是将编码的html放入文本中。 Text="&lt;img src='images/btn-find.png' class='ttip' alt='View Details' /&gt;"这让我知道只放入img src,但也指定了一个类和一个alt标签。

您需要做的只是使用单个刻度线,并使用<>gtlt进行编码。