Hi swathiyemp,
Refer below sample.
HTML
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
$('[id*=QuestList]').click(function () {
var text = $(this).val();
if (text == "No") {
$(this).closest('table').parent().find('div').show();
var radio = $(this).closest('table').parent().find("TR").find("INPUT");
for (var i = 0; i < radio.length; i++) {
if ($(this).closest('table').parent().find("TR").find("INPUT")[i].value == "No") {
$(this).closest('table').parent().find("TR").find("INPUT")[i].checked = true;
}
}
}
else if (text == "Yes") {
$(this).closest('table').parent().find('div').hide();
}
else if (text == "N/A") {
$(this).closest('table').parent().find('div').show();
var radio = $(this).closest('table').parent().find("TR").find("INPUT");
for (var i = 0; i < radio.length; i++) {
if ($(this).closest('table').parent().find("TR").find("INPUT")[i].value == "N/A") {
$(this).closest('table').parent().find("TR").find("INPUT")[i].checked = true;
}
}
}
});
});
</script>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="None"
CssClass="Grid" DataKeyNames="CustomerId" OnRowDataBound="OnRowDataBound">
<Columns>
<asp:BoundField DataField="ContactName" HeaderText="ContactName" />
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButtonList ID="QuestList" runat="server" DataValueField="Question" RepeatDirection="Horizontal">
<asp:ListItem Enabled="False" Style="display: none" Text="" Value="0"></asp:ListItem>
<asp:ListItem Value="Yes">Yes</asp:ListItem>
<asp:ListItem Value="No">No</asp:ListItem>
<asp:ListItem Value="N/A">N/A</asp:ListItem>
</asp:RadioButtonList>
<br></br>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" CssClass="ChildGrid"
GridLines="None">
<Columns>
<asp:BoundField DataField="OrderId" HeaderText="OrderId" />
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButtonList ID="StandList" runat="server" DataValueField="Description" RepeatDirection="Horizontal">
<asp:ListItem Enabled="False" Style="display: none" Text="" Value="0"></asp:ListItem>
<asp:ListItem Value="Yes">Yes</asp:ListItem>
<asp:ListItem Value="No" Selected="False">No</asp:ListItem>
<asp:ListItem Value="N/A">N/A</asp:ListItem>
</asp:RadioButtonList>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br></br>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button Text="Insert" runat="server" OnClick="Insert" />
<br />
<asp:GridView ID="gvStatus" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Status" HeaderText="Status" />
<asp:BoundField DataField="Id" HeaderText="Id" />
</Columns>
</asp:GridView>
Namespaces
C#
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
VB.Net
Imports System.Data.SqlClient
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
GridView1.DataSource = GetData("select top 2 * from Customers", strConnString);
GridView1.DataBind();
}
}
private static DataTable GetData(string query, string strConnString)
{
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = query;
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
DataTable dt = new DataTable();
sda.Fill(dt);
return dt;
}
}
}
}
}
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string questid = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();
GridView GridView2 = e.Row.FindControl("GridView2") as GridView;
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
GridView2.DataSource = GetData(string.Format("select top 1 * from Orders where CustomerId='{0}'", questid), strConnString);
GridView2.DataBind();
}
}
protected void Insert(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
GridView GridView2 = row.FindControl("GridView2") as GridView;
foreach (GridViewRow row1 in GridView2.Rows)
{
if (row1.RowType == DataControlRowType.DataRow)
{
RadioButtonList rbl = row1.FindControl("StandList") as RadioButtonList;
if (rbl.SelectedIndex != -1)
{
string constr = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
SqlCommand cmd = new SqlCommand("INSERT INTO TestDemo(Id,Status) VALUES(@Id,@Status)", con);
cmd.Parameters.AddWithValue("@Status", rbl.SelectedValue);
cmd.Parameters.AddWithValue("@Id", row1.Cells[0].Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
}
}
string strConnString = ConfigurationManager.ConnectionStrings["constr1"].ConnectionString;
DataTable dt = GetData("SELECT Status, Id FROM TestDemo", strConnString);
gvStatus.DataSource = dt;
gvStatus.DataBind();
}
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not IsPostBack Then
Dim strConnString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
GridView1.DataSource = GetData("select top 2 * from Customers", strConnString)
GridView1.DataBind()
End If
End Sub
Private Shared Function GetData(ByVal query As String, ByVal strConnString As String) As DataTable
Using con As SqlConnection = New SqlConnection(strConnString)
Using cmd As SqlCommand = New SqlCommand()
cmd.CommandText = query
Using sda As SqlDataAdapter = New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using ds As DataSet = New DataSet()
Dim dt As DataTable = New DataTable()
sda.Fill(dt)
Return dt
End Using
End Using
End Using
End Using
End Function
Protected Sub OnRowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
Dim questid As String = GridView1.DataKeys(e.Row.RowIndex).Value.ToString()
Dim GridView2 As GridView = TryCast(e.Row.FindControl("GridView2"), GridView)
Dim strConnString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
GridView2.DataSource = GetData(String.Format("select top 1 * from Orders where CustomerId='{0}'", questid), strConnString)
GridView2.DataBind()
End If
End Sub
Protected Sub Insert(ByVal sender As Object, ByVal e As EventArgs)
For Each row As GridViewRow In GridView1.Rows
If row.RowType = DataControlRowType.DataRow Then
Dim GridView2 As GridView = TryCast(row.FindControl("GridView2"), GridView)
For Each row1 As GridViewRow In GridView2.Rows
If row1.RowType = DataControlRowType.DataRow Then
Dim rbl As RadioButtonList = TryCast(row1.FindControl("StandList"), RadioButtonList)
If rbl.SelectedIndex <> -1 Then
Dim constr As String = ConfigurationManager.ConnectionStrings("constr1").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Dim cmd As SqlCommand = New SqlCommand("INSERT INTO TestDemo(Id,Status) VALUES(@Id,@Status)", con)
cmd.Parameters.AddWithValue("@Status", rbl.SelectedValue)
cmd.Parameters.AddWithValue("@Id", row1.Cells(0).Text)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Using
End If
End If
Next
Dim strConnString As String = ConfigurationManager.ConnectionStrings("constr1").ConnectionString
Dim dt As DataTable = GetData("SELECT Status, Id FROM TestDemo", strConnString)
gvStatus.DataSource = dt
gvStatus.DataBind()
End If
Next
End Sub
Screenshot
