我正在尝试使用网格视图中的图像按钮来选择一行,以便我可以使用SelectedIndexChanged函数执行其他操作。我试过这个:
<asp:ImageButton ID="Image1" CommandName="SelectRowGrid2" runat="server" ImageUrl="~/images/select.png" />
Protected Sub GridView2_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView2.RowCommand
Select Case e.CommandName
Case "SelectRowGrid2"
'some code for selecting the index?
Label1.Text = GridView2.SelectedIndex
End Select
End Sub
但是当我去调试它时它甚至没有进入RowCommand子。 谢谢你提前。
答案 0 :(得分:3)
或者你可以试试以下:
Protected Sub ImgSelect_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
Dim row As GridViewRow = DirectCast(DirectCast(sender, ImageButton).NamingContainer, GridViewRow)
DirectCast(row.NamingContainer, GridView).SelectedIndex = row.RowIndex
End Sub
ASPX:
<asp:TemplateField HeaderText="Select">
<ItemTemplate >
<asp:ImageButton ID="ImgSelect" OnClick="ImgSelect_Click" runat="server" />
</ItemTemplate>
</asp:TemplateField>
答案 1 :(得分:1)
我在c#中已经做了很多次。也许我可以帮助你。
我做的一些事情与你不同:
我调用CellContentClick与RowCommand相对。 我想检查一下,行中的哪个单元格被点击了 3.检查该行是否为空 4.如果是我的图像按钮单元格,请获取我的行数据
1
private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
2
if (e.ColumnIndex == dgv.Columns["btnClmn"].Index)
3
if (dgvAllApplication.CurrentRow != null)
4
txtName.Text = dgv.CurrentRow.Cells["App_Name"].Value.ToString();
祝你好运!
答案 2 :(得分:1)
你可以在图像按钮上创建点击事件,并从那里做你需要做的任何事情
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
ImageButton img = (ImageButton)sender;
GridViewRow row = (GridViewRow)img.Parent.Parent;
//do stuff
//find label in the same row
Label lbl = (Label)row.FindControl("Label1");
}