itemTemplateのグリッドビューにonCheckChangedで起動するチェックボックスが含まれています。グリッドビューが内部にあるグリッドビューの列と行をキャッチしたい。
どうすればいいですか?
public void PM_chkbx_Chacked_Changed(object sender, EventArgs e)
{
//What to write here?
}
itemTemplateのグリッドビューにonCheckChangedで起動するチェックボックスが含まれています。グリッドビューが内部にあるグリッドビューの列と行をキャッチしたい。
どうすればいいですか?
public void PM_chkbx_Chacked_Changed(object sender, EventArgs e)
{
//What to write here?
}
gridviewでデータキーを使用し、行と特定の列を取得できました。ここで、gridviewidは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ページのデザインでは、[列]セクションに列を追加できます。
<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
}