Я думаю, вы можете использовать поле шаблона для этого.Что вам нужно сделать, так это в событии GridView RowDataBound найти ImageButton, который вы добавили в поле шаблона, а затем дать идентификатор или номер строки или что-то, что вы можете использовать для определения, в какой строке находится ImageButton, в качестве атрибута ImageButton.
Вы можете использовать это место, чтобы дать ImageUrl также образец, похожий на приведенный ниже.
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton imgbtn = (ImageButton)e.Row.FindControl("imgbtn1");
if (imgbtn != null)
{
imgbtn.Attributes["id"] = e.Row.RowIndex.ToString();
}
}
}
, затем вы можете создать событие click для ImageButton.Таким образом, вы можете получить id / rowindex кнопки изображения, на которую вы нажали, и делать то, что вы хотите.Событие может выглядеть следующим образом
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = (ImageButton)sender;
string rowindex = btn.Attributes["id"];
}
, тогда в поле шаблона GridView вы можете добавить событие click к событию ImageButtons onClick.Это может выглядеть так:
<asp:TemplateField HeaderText="Image">
<ItemTemplate>
<asp:ImageButton runat ="server" ID="imgbtn1" onclick="ImageButton1_Click"/>
</ItemTemplate>
</asp:TemplateField>