在GridView中使用imageButton来选择行

时间:2011-02-24 20:37:16

标签: asp.net gridview

我正在尝试使用网格视图中的图像按钮来选择一行,以便我可以使用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子。 谢谢你提前。

3 个答案:

答案 0 :(得分:3)

  • 您可以将GridView的AutoGenerateSelectButton设置为true MSDN
  • 您可以将LinkBut​​ton的CommandName设置为“选择”MSDN

或者你可以试试以下:

 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");
    }