Hi shaks,
I have created a sample which full fill your requirement
C#
protected void OnItemChange(object sender, EventArgs e)
{
int rowIndex = 0;
TextBox box1 = new TextBox();
TextBox box2 = new TextBox();
TextBox box3 = new TextBox();
for (int i = 0; i < Gridview1.Rows.Count; i++)
{
box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");
box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");
box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");
rowIndex++;
}
if (!string.IsNullOrEmpty(box1.Text.Trim()) && !string.IsNullOrEmpty(box2.Text.Trim()) && !string.IsNullOrEmpty(box3.Text.Trim()))
{
AddNewRowToGrid();
}
else
{
Response.Write("<script type=\"text/javascript\">alert('Please Fill the Details');</script>");
}
}
HTML
<div>
<asp:GridView ID="Gridview1" runat="server" ShowFooter="true" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
<asp:TemplateField HeaderText="Header 1">
<ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Header 2">
<ItemTemplate>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Header 3">
<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:DropDownList ID="ddlItem" AutoPostBack="true" runat="server" OnSelectedIndexChanged="OnItemChange">
<asp:ListItem Text="Item1" />
<asp:ListItem Text="Item2" />
<asp:ListItem Text="Item3" />
</asp:DropDownList>
</div>
and refer below article
ScreenShot
Hope this works for you