C# 是否可以用GridView中的图像替换按钮字段?

C# 是否可以用GridView中的图像替换按钮字段?,c#,asp.net,buttonfield,C#,Asp.net,Buttonfield,我有一个GridView,它有一个删除记录的链接。我创建了一个DeleteButtonField类,但我想用一个图像(图标)替换文本。这可能吗?以下是我的GridView: <asp:GridView ID="GridView1" runat="server" <.. removed dome properties ..> > <Columns> <CustomControls:DeleteButto

我有一个GridView,它有一个删除记录的链接。我创建了一个DeleteButtonField类,但我想用一个图像(图标)替换文本。这可能吗?以下是我的GridView:

<asp:GridView 
    ID="GridView1" 
    runat="server"
    <.. removed dome properties ..> 
    >
    <Columns>
    <CustomControls:DeleteButtonField ConfirmText="Delete this record?" /> 
    <.. other columns ..>
    </Columns>
</asp:GridView>
这可能吗?如您所见,我将以下代码添加到DeleteButtonField.cs类中,但没有任何效果:
this.ImageUrl=“App\u GlobalResources/Del.png”


谢谢

让我们放弃覆盖按钮字段的想法,使用一个简单的模板字段。它将正确处理post back并引发GridView的(RowCommand&rowdeleding)事件。希望这有帮助!=)


马克,我想你的自定义类非常非常接近。要使
ButtonField
类显示图像,您需要指定
ImageUrl
属性并将
ButtonType
属性设置为
ButtonType.image

尝试将
deleteButonField
类的构造函数更新为:

public DeleteButtonField()
{
    this.CommandName = "Delete";
    this.Text = "Delete";
    this.ImageUrl = "App_GlobalResources/Del.png";
    this.ButtonType = ButtonType.Button;
}
或者,您可以通过
.aspx
页面中的声明性语法指定这些设置:

<CustomControls:DeleteButtonField ConfirmText="Delete this record?" ImageUrl='...' ButtonType="Image" /> 


快乐编程

@Brian,我有个问题。现在,当我单击图像时,记录不会被删除。你知道哪里出了问题吗?马克,看看上面的代码。你现在应该开始工作了。我本来打算为您编写一个TemplateField示例,所以我应该坚持自己的观点。它可以更好地处理事情(回发等)@布莱恩,谢谢你。当我运行此命令时,ASP.NET开发web服务器崩溃!有趣的是,我在自己的服务器上运行了这个,它是w/.net4,VS2010 w/devweb服务器,没有任何问题。确保您的代码没有像一次又一次地添加相同的控件那样执行循环引用。插入一些中断并进行调试。向我发送个人消息,我将向您发送我的测试项目。@Brian-SO不支持私人消息。我会打断一下,看看发生了什么。Scott我也遇到了同样的问题,删除操作不会发送到数据库。我认为DeleteMethod不会被调用。马克:你最初的问题是删除按钮的图像没有显示出来。但现在你的问题似乎有点不同了,即删除不起作用。那么,删除按钮图像现在是否与我的答案一起显示?确实,按钮图像正在显示,但删除实际上并没有删除任何内容。在没有图像的情况下,删除工作正常。马克:我建议你接受这个问题的答案,然后为你的新问题创建一个新问题。
public DeleteButtonField()
{
    this.CommandName = "Delete";
    this.Text = "Delete";
    this.ImageUrl = "App_GlobalResources/Del.png";
    this.ButtonType = ButtonType.Button;
}
<CustomControls:DeleteButtonField ConfirmText="Delete this record?" ImageUrl='...' ButtonType="Image" />