2010-04-20 69 views
1

我想在DataGridView中做一个简单的“删除行”按钮,但问题是我希望它是一个ImageButton而不是一个简单的Button。在C#中的DataGridView中添加图像按钮#

目前我已将它设置为ButtonColumn,但没有看到将其从带有文本的简单按钮更改为带有图像的按钮的可能性。

我知道这是可能的,希望相对简单,但我不确定如何去做。

编辑

对不起,我应该澄清。 这是直接C#中的独立应用程序...我无法访问ASP表单类型。

回答

1

如果你愿意只是去,而不是一个ImageButton的可点击的图片,有一个非常简单的解决方案。

添加一个ImageColumn到你的dgView中,将它的“NullValue”设置为一个红色的X或任何你想要的。这将确保所有的行将始终显示X而不需要额外的工作。

之后,你会想添加一个“CellContentClick”事件来捕获用户实际点击X.

里面的cellcontent点击事件,您可以检查是否

//check if your clicking on a cell inside the imagecolumn column 
if(e.ColumnIndex == this.colImageColumn.index && e.RowIndex > 0) 
    //Delete Row e.RowIndex 
1
<asp:buttonfield ButtonType="Image" ImageUrl="/images/edit.gif" commandname="ibtnEdit" HeaderText=" " /> 
+0

请参阅编辑 – espais 2010-04-20 11:17:02

+0

哎呀!我认为这是asp.net。抱歉。 – 2010-04-20 12:40:35

-1

您可以在GridView中使用模板字段。就像这样:

<asp:TemplateField HeaderText="Delete"> 
    <ItemTemplate> 
    <asp:ImageButton ID="imgBtnDelete" runat="server" OnClick="imgBtnDelete_Click" ImageUrl="~/media/Delete.gif"> 
    </asp:ImageButton> 
    </ItemTemplate> 
</asp:TemplateField> 
+0

请参阅编辑 – espais 2010-04-20 11:17:22

0

在事件dataGridViewMain_CellContentClick写下面的代码

if (e.ColumnIndex == dataGridViewMain.Columns["ImageColumn"].Index) 
    { 
    lblShowCellData.Text = dataGridViewMain.Rows[e.RowIndex].Cells["CustomerName"].Value.ToString(); 
    // Do some thing else.... 
    } 

下载完整的源代码在http://tablegridview.blogspot.in