在ASP.Net中将可单击图像添加到GridView
我试图在GridView的每一行末尾添加一个删除图像。我希望用户能够单击图像删除该行 因此,我使用了一个超链接字段来创建指向另一个页面的链接,该页面将删除记录:在ASP.Net中将可单击图像添加到GridView,asp.net,image,gridview,hyperlink,Asp.net,Image,Gridview,Hyperlink,我试图在GridView的每一行末尾添加一个删除图像。我希望用户能够单击图像删除该行 因此,我使用了一个超链接字段来创建指向另一个页面的链接,该页面将删除记录: <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="RemoveLine.aspx?ID={0}"
<asp:HyperLinkField DataNavigateUrlFields="ID"
DataNavigateUrlFormatString="RemoveLine.aspx?ID={0}"
Target="_blank" />
HyperLinkField不包含图像标记,因此我创建了一个包含图像的TemplateField
<asp:TemplateField>
<ItemTemplate>
<asp:Image ID="imageRemove" runat="server" ImageUrl="~/Images/smallcross.gif" />
</ItemTemplate>
</asp:TemplateField>
但是,超链接字段和图像显示在不同的列中,并且图像没有单击事件
有没有办法把两者结合起来
我正在使用ASP.NET4.0
提前谢谢图像按钮怎么样
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server"
ImageUrl="~/Images/smallcross.gif" onclick="ImageButton1_Click" />
</ItemTemplate>
通常,您需要确定要删除的记录,您可以使用commadaargument属性来确定记录的Id:
<asp:TemplateField HeaderStyle-Width="40">
<ItemTemplate>
<asp:ImageButton ID="ButtonDelete" runat="server"
ImageUrl="~/Imags/delete.png" OnClick="ButtonDelete_Click" ToolTip="Delete"
CommandArgument='<%#Bind("UserId")%>'/>
</ItemTemplate>
</asp:TemplateField>
protected void ButtonDelete_Click(object sender, EventArgs e)
{
ImageButton button = sender as ImageButton;
DeleteUserById(Convert.ToInt32(button.CommandArgument));
}
受保护的无效按钮删除\单击(对象发送者,事件参数e)
{
ImageButton button=发送方作为ImageButton;
DeleteUserById(Convert.ToInt32(button.CommandArgument));
}
你可以用一个原始的锚定标签包装你的图像,你会得到同样的结果
<asp:TemplateField>
<ItemTemplate>
<a href="RemoveLine.aspx?ID={0}">
<asp:Image ID="imageRemove" runat="server" ImageUrl="~/Images/smallcross.gif" />
</a>
</ItemTemplate>
</asp:TemplateField>
}
谢谢你的回复,我该如何传递身份证?
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="btnDelete" runat="server"
ImageUrl="~/Imags/delete.png" OnClick="btnDelete_Click"
ToolTip="Delete row" CommandName="Eliminar" CommandArgument='<%#Eval("UserId")%>'/>
</ItemTemplate>
// fires when the ImageButton gets clicked
protected void GridView1_ItemCommand(object sender, DataGridCommandEventArgs e)
{
if(e.Commandname ="Eliminar"){
this.Eliminar(Convert.ToInt32(e.CommandArgument));
}
// function to delete the record
private void Eliminar(int code)
{
//custom code to delete the records
}