Asp.net 从itemtemplate获取gridview列和行复选框事件

Asp.net 从itemtemplate获取gridview列和行复选框事件,asp.net,events,gridview,checkbox,itemtemplate,Asp.net,Events,Gridview,Checkbox,Itemtemplate,我发现gridview with itemTemplate包含一个复选框,在onCheckChanged时触发。 我想捕捉gridview所在的gridview列和行 我怎么做 public void PM_chkbx_Chacked_Changed(object sender, EventArgs e) { //What to write here? } 我在gridview中使用了数据键,能够获取行和特定列。这里的gridview id是grdrequestlist public

我发现gridview with itemTemplate包含一个复选框,在onCheckChanged时触发。 我想捕捉gridview所在的gridview列和行

我怎么做

public void PM_chkbx_Chacked_Changed(object sender, EventArgs e)
{
     //What to write here?
}

我在gridview中使用了数据键,能够获取行和特定列。这里的gridview id是grdrequestlist

public void PM_chkbx_Chacked_CheckedChanged(object sender, EventArgs e)
{
//here you can get row on whcih you checkbox chnged event called

GridViewRow Row = ((GridViewRow)((Control)sender).Parent.Parent);
string requestid = grdrequestlist.DataKeys[Row.RowIndex].Value.ToString();
string cellvalue=Row.Cells[1].Text;
}
这是gridview的.aspx页面设计。在这里,您可以在columns部分添加列

<asp:GridView ID="grdrequestlist" runat="server" DataKeyNames="RequestId" >
<Columns>
 <asp:TemplateField HeaderText="Actions" >
                 <ItemTemplate>
 <asp:CheckBox ID="PM_chkbx_Chacked" AutoPostBack="true" runat="server" oncheckedchanged="PM_chkbx_Chacked_CheckedChanged" />
                 </ItemTemplate>
                </asp:TemplateField>
                    </Columns>
</asp:GridView>

希望这对您有所帮助。

我找到了解决方案:

public void PM_chkbx_Chacked_Changed(object sender, EventArgs e)
    {
        GridViewRow gvr = ((GridViewRow)((Control)sender).Parent.Parent);
        int index_row = gvr.RowIndex;
        string role_name = gv_permissions_management.DataKeys[index_row].Value.ToString();
        string fileld_name = ((DataControlFieldCell)((Control)sender).Parent).ContainingField.HeaderText;
        ((DataControlFieldCell)((Control)sender).Parent).BackColor = Color.Red; //Color the Cell

     }

谢谢,它帮助我获得了行号和数据键。我还需要获取我选中的复选框所在的列名。我怎么做?