Introduction: Hello friends, in this article i will explain that how we can bind dropdownlist inside the gridview. This is very interesting article for every .net developers.
Implementation: Create a new website add a page named dd_inside_the_gridview.aspx. Drag and drop the gridview at this page from the toolbox. Below i am giving the html code for the .aspx page.
Code for dd_inside_the_gridview.aspx page:
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
CellPadding="4" ForeColor="Black" GridLines="Horizontal" Height="241px"
Width="374px">
<Columns>
<asp:TemplateField HeaderText="ID">
<ItemTemplate>
<%#Eval("id") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<%#Eval("name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="designation">
<ItemTemplate>
<asp:DropDownList ID="dd_desghnation" runat="server">
<asp:ListItem> --Select--</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
</asp:GridView>
</form>
Code for dd_inside_the_gridview.aspx.cs page:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
// use above three namespaces for this article
public partial class dd_inside_the_gridview : System.Web.UI.Page
{
DropDownList bind_dropdownlist;
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack == false)
{
// here i am calling the function which bind the gridview
bind_gridview_with_dropdownlist();
}
}
private void bind_gridview_with_dropdownlist()
{
// here i am declare a connectionstring to attach the database
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["cnn"].ConnectionString);
con.Open();
// here i am definning the sql query which will used for the binding of the gridview and declare the SqlDataAdapter
SqlDataAdapter adp = new SqlDataAdapter("select * from tb_designation", con);
// here i am declare the dataset to fill the gridview
DataSet ds = new DataSet();
// here i am filling the SqlDataAdapter with the dataset
adp.Fill(ds, "tb_designation");
//here i am binding the gridview with the dataset ds
GridView1.DataSource = ds;
GridView1.DataBind();
// here i am using the foreach loop to bind the gridview with the database
foreach (GridViewRow grdRow in GridView1.Rows)
{
// here i am definning the property of the DropDownList as bind_dropdownlist
// DropDownList bind_dropdownlist = new DropDownList();
// here i am finding the DropDownList from the gridiew for binding
bind_dropdownlist = (DropDownList)(GridView1.Rows[grdRow.RowIndex].Cells[2].FindControl("dd_desghnation"));
// here i am binding the DropDownList with the dataset ds
bind_dropdownlist.DataSource = ds;
// here i am set the DropDownList's DataValueField as id
bind_dropdownlist.DataValueField = "ID";
// here i am set the DropDownList's DataTextField as designation which display the designation in the dropdownlist after fetching the data from database
bind_dropdownlist.DataTextField = "designation";
bind_dropdownlist.DataBind();
}
}
}
Below i am displaying the outout of this program in the image:
SQl script for the table tb_designation:
/****** Object: Table [dbo].[tb_designation] Script Date: 03/08/2011 18:59:32 ******/
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tb_designation]') AND type in (N'U'))
DROP TABLE [dbo].[tb_designation]
GO
/****** Object: Table [dbo].[tb_designation] Script Date: 03/08/2011 18:59:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tb_designation]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[tb_designation](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[designation] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
)
END
GO
SET IDENTITY_INSERT [dbo].[tb_designation] ON
INSERT [dbo].[tb_designation] ([ID], [Name], [designation]) VALUES (1, N'Bharat', N'manager')
INSERT [dbo].[tb_designation] ([ID], [Name], [designation]) VALUES (2, N'John', N'clerck')
INSERT [dbo].[tb_designation] ([ID], [Name], [designation]) VALUES (3, N'vikas', N'director')
INSERT [dbo].[tb_designation] ([ID], [Name], [designation]) VALUES (4, N'ajay', N'developer')
INSERT [dbo].[tb_designation] ([ID], [Name], [designation]) VALUES (5, N'manoj', N'designer')
INSERT [dbo].[tb_designation] ([ID], [Name], [designation]) VALUES (6, N'vishal', N'content writer')
SET IDENTITY_INSERT [dbo].[tb_designation] OFF
Conclusion: Dear friends, through this article you have learned that how we can bind dropdownlist inside the gridview.
Thanks a lot.. this is the one solution i expected..
ReplyDeleteHey sathish!!!! Thanks sir for your comment. You can also give me some suggestions to Improve my next articles.
DeleteThanks
Regards
Bharat Bhushan
Great post..but you need give the clear code ..
ReplyDeleteHi!!! Bhaskar,
DeleteBrother i am giving the complete code with the description. Commented lines means the complete description of the code. These commented lines helps to the developer to understand the complete code.
Thanks
Regards
Bharat Bhushan
using Microsoft enterprise library also, u can do database operation please check... http://aspnettutorialonline.blogspot.com/2012/04/insert-delete-update-records-in.html
ReplyDeleteThere is a problem with this code. The dropdownlist doesn't contain a list of items.
ReplyDeleteOn the my end there is not any error inside this code. It is running greatly.Please debug it properly when u will run and check the database that there is values available or not inside the table.
DeleteThanks.
Regards
Bharat Bhushan
Excellent. Thank you.
ReplyDeleteHi!!! Gaurang Its mine pleasure dear.. If you have any suggestion to improve the blog. You can also send me your expensive suggestions..
DeleteDrop down contains set of values not filling like above the pic its binding a common values for all drop down
ReplyDeleteIn the image i am displaying the different values because of the showing the values for the user. and at the binding time these values will come accoring to the sql query in asc or desc order or according to the order, which u'll use..
DeleteIs it neceessary to bind gridview
ReplyDeletewhile binding the dropdown list
Yes cHINMAY it is too necessary...
DeleteThis comment has been removed by the author.
ReplyDeleteDear Friend i have used the same code every thing is fine but i am getting first value in drop down. plz advice me Shivakuti(at)gmail.com
ReplyDeleteHi!! shivakaruna Thankx you sir. Please feel free to get in touch with my blog and you can also give us your expensive suggestions to improve this blog. and read this article. This will help you to solve your problem
Deletehttp://www.aspsnippets.com/Articles/Bind-DropDownList-in-ItemTemplate-of-TemplateField-in-ASPNet-GridView.aspx
Thanks
using asp.net
Hello,
ReplyDeleteThank you very much this code really helped me a lot.
thank you sir this code really helped me a lot.
ReplyDeleteBut my Question is that i want default value of row is already selected
Sir,you gave a great code,but my question is after selecting value from dropdownlist ,I want to update data of designation in database.
ReplyDeleteHi!! Kartika. Thanks a lot sir. If you want to update the record after selecting the option from the dropdownlist, firstly place and bind the dropdownlist inside the edititemtemplate of the grid then in the updating evet find the dropdown and after finding bind it and write the update code.
DeleteThanks
Using Asp.net
Hi, Nice code for Dropdownlist inside the Gridview in ASP.NET.Code is Simple and useful to learn.Thanks for your support.
ReplyDelete-Aparna
Theosoft
thanks very much
ReplyDeletei had a big problem with Drop down because i'm a beginner
Having the same code but M getting null value in row while checking with break point....
ReplyDelete:(
Using GridView control in .NET
ReplyDelete