Hi aruneddy,
Please take reference to the below code and correct your code.
HTML
<asp:RadioButtonList ID="rbllist" runat="server" OnSelectedIndexChanged="rbllist_SelectedIndexChanged"
AutoPostBack="true">
<asp:ListItem Text="Country" Value="Country"></asp:ListItem>
<asp:ListItem Text="City" Value="City"></asp:ListItem>
</asp:RadioButtonList>
<asp:DropDownList runat="server" ID="ddlCities">
<asp:ListItem Text="Seattle" />
<asp:ListItem Text="Tacoma" />
<asp:ListItem Text="Kirkland" />
<asp:ListItem Text="Redmond" />
<asp:ListItem Text="London" />
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" Height="200px" Width="725px" AutoGenerateColumns="False"
AllowPaging="True" CellPadding="0" PageSize="10" BackColor="White" BorderColor="#3366CC"
BorderStyle="None" BorderWidth="1px">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblcounty" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" Style="padding: 2px 10px; margin-left: 30px; width: 50px;
height: 50px;" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<div align="center">
No records found.</div>
</EmptyDataTemplate>
<FooterStyle BackColor="#99CCCC" ForeColor="#003399" Height="30px" />
<HeaderStyle BackColor="#003399" Font-Bold="True" ForeColor="#CCCCFF" Height="30px" />
<PagerStyle BackColor="#99CCCC" ForeColor="#003399" HorizontalAlign="left" />
<RowStyle BackColor="White" ForeColor="#003399" Height="30px" />
<SelectedRowStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" />
<SortedAscendingCellStyle BackColor="#EDF6F6" />
<SortedAscendingHeaderStyle BackColor="#0D4AC4" />
<SortedDescendingCellStyle BackColor="#D6DFDF" />
<SortedDescendingHeaderStyle BackColor="#002876" />
</asp:GridView>
Namespaces
C#
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
VB.Net
Imports System.Data.SqlClient
Imports System.Data
Code
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindGrid();
}
}
private void BindGrid()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT Country FROM Employees", con))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.Columns[0].HeaderText = "Available counties";
GridView1.Columns[0].HeaderStyle.ForeColor = System.Drawing.Color.White;
GridView1.DataSource = dt;
GridView1.DataBind();
if (dt.Rows.Count > 0)
{
for (int j = 0; j < GridView1.Rows.Count; j++)
{
Label lblname = GridView1.Rows[j].FindControl("lblcounty") as Label;
lblname.Text = dt.Rows[j]["Country"].ToString();
}
}
}
}
}
protected void rbllist_SelectedIndexChanged(object sender, EventArgs e)
{
if (rbllist.SelectedItem.Text == "Country")
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT DISTINCT Country FROM Employees WHERE City=@City", con))
{
cmd.Parameters.AddWithValue("@City", ddlCities.SelectedItem.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.Columns[0].HeaderText = "Available counties";
GridView1.Columns[0].HeaderStyle.ForeColor = System.Drawing.Color.White;
GridView1.DataSource = dt;
GridView1.DataBind();
if (dt.Rows.Count > 0)
{
int i = 0;
foreach (GridViewRow row in GridView1.Rows)
{
Label lblname = row.FindControl("lblcounty") as Label;
lblname.Text = dt.Rows[i]["Country"].ToString();
i++;
}
}
}
}
}
else if (rbllist.SelectedItem.Text == "City")
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT DISTINCT Title FROM Employees WHERE City=@City", con))
{
cmd.Parameters.AddWithValue("@City", ddlCities.SelectedItem.Text);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
GridView1.Columns[0].HeaderText = "Available Titles";
GridView1.Columns[0].HeaderStyle.ForeColor = System.Drawing.Color.White;
GridView1.DataSource = dt;
GridView1.DataBind();
if (dt.Rows.Count > 0)
{
int i = 0;
foreach (GridViewRow row in GridView1.Rows)
{
Label lblname = row.FindControl("lblcounty") as Label;
lblname.Text = dt.Rows[i]["Title"].ToString();
i++;
}
}
}
}
}
else
{
this.BindGrid();
}
}
VB.Net
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
If Not Me.IsPostBack Then
Me.BindGrid()
End If
End Sub
Private Sub BindGrid()
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("SELECT Country FROM Employees", con)
Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt As DataTable = New DataTable()
da.Fill(dt)
GridView1.Columns(0).HeaderText = "Available counties"
GridView1.Columns(0).HeaderStyle.ForeColor = System.Drawing.Color.White
GridView1.DataSource = dt
GridView1.DataBind()
If dt.Rows.Count > 0 Then
For j As Integer = 0 To GridView1.Rows.Count - 1
Dim lblname As Label = TryCast(GridView1.Rows(j).FindControl("lblcounty"), Label)
lblname.Text = dt.Rows(j)("Country").ToString()
Next
End If
End Using
End Using
End Sub
Protected Sub rbllist_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
If rbllist.SelectedItem.Text = "Country" Then
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("SELECT DISTINCT Country FROM Employees WHERE City=@City", con)
cmd.Parameters.AddWithValue("@City", ddlCities.SelectedItem.Text)
Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt As DataTable = New DataTable()
da.Fill(dt)
GridView1.Columns(0).HeaderText = "Available counties"
GridView1.Columns(0).HeaderStyle.ForeColor = System.Drawing.Color.White
GridView1.DataSource = dt
GridView1.DataBind()
If dt.Rows.Count > 0 Then
Dim i As Integer = 0
For Each row As GridViewRow In GridView1.Rows
Dim lblname As Label = TryCast(row.FindControl("lblcounty"), Label)
lblname.Text = dt.Rows(i)("Country").ToString()
i += 1
Next
End If
End Using
End Using
ElseIf rbllist.SelectedItem.Text = "City" Then
Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As SqlConnection = New SqlConnection(constr)
Using cmd As SqlCommand = New SqlCommand("SELECT DISTINCT Title FROM Employees WHERE City=@City", con)
cmd.Parameters.AddWithValue("@City", ddlCities.SelectedItem.Text)
Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
Dim dt As DataTable = New DataTable()
da.Fill(dt)
GridView1.Columns(0).HeaderText = "Available Titles"
GridView1.Columns(0).HeaderStyle.ForeColor = System.Drawing.Color.White
GridView1.DataSource = dt
GridView1.DataBind()
If dt.Rows.Count > 0 Then
Dim i As Integer = 0
For Each row As GridViewRow In GridView1.Rows
Dim lblname As Label = TryCast(row.FindControl("lblcounty"), Label)
lblname.Text = dt.Rows(i)("Title").ToString()
i += 1
Next
End If
End Using
End Using
Else
Me.BindGrid()
End If
End Sub
Screenshot
