first off all we have to manually register command at Parent grid view row_created event.
protected void GV_ViewServices_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView gv = e.Row.FindControl("GV_ViewServiceFeature") as GridView;
gv.RowCommand += new GridViewCommandEventHandler(GV_ViewServiceFeature_RowCommand);
GridView gv1 = e.Row.FindControl("GV_ViewServiceCharge") as GridView;
gv1.RowCommand += new GridViewCommandEventHandler(GV_ViewServiceCharge_RowCommand);
}
}
protected void GV_ViewServiceFeature_RowCommand(object sender, GridViewCommandEventArgs e)
{
System.Web.UI.WebControls.GridView gv = ((System.Web.UI.WebControls.GridView)sender);
GridViewRow gvRowParent = ((System.Web.UI.WebControls.GridView)sender).Parent.Parent.Parent.Parent as GridViewRow;
if (e.CommandName.Equals("AddNew"))
{
Page.Validate("AddNewFeature");
TextBox txtfeaturetext = (TextBox)gv.FooterRow.FindControl("txtfeaturetext");
int returnValue = DatabaseHelper.AddNewServiceFeature(int.Parse(GV_ViewServices.DataKeys[gvRowParent.RowIndex].Value.ToString()), txtfeaturetext.Text.Trim());
if (returnValue > 0)
{
this.FillFeatureGrid(int.Parse(GV_ViewServices.DataKeys[gvRowParent.RowIndex].Value.ToString()), gv);
}
}
int intCurIndex = gv.PageIndex;
switch (e.CommandArgument.ToString().ToLower())
{
case "first":
gv.PageIndex = 0;
break;
case "prev":
CurrentPage -= 1;
break;
case "next":
CurrentPage += 1;
break;
case "last":
gv.PageIndex = gv.PageCount;
break;
}
this.FillFeatureGrid(int.Parse(GV_ViewServices.DataKeys[gvRowParent.RowIndex].Value.ToString()),gv);
}