In this gridview tutorial, I’m going to explain how to bind a drop down list with in a gridview. The drop down list located inside gridview in a “Template” Column. Paste the below code in an aspx page.
Happy Coding!!
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="CountryStateDemo.aspx.vb" Inherits="Gridview_CountryStateDemo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Gridview - Country State Demo</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView runat="server" ID="dgView" AutoGenerateColumns="false" > <Columns> <asp:BoundField DataField="city_name" HeaderText="City" /> <asp:TemplateField HeaderText="Country"> <ItemTemplate> <asp:DropDownList runat="server" ID="ddlCountry"> </asp:DropDownList> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>Paste the below code in aspx.vb page:
Imports System.Data
Imports System.Data.SqlClient
Partial Class Gridview_CountryStateDemo
Inherits System.Web.UI.Page
Private dsCountry As New DataSet
Private dsCity As New DataSet
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Check that page is loaded first time or not
' That is the page is not posted back
If Not Page.IsPostBack Then
GetDataFromDB()
End If
End Sub
'''
''' Get the Data From DB
'''
''' DataSet
'''
Private Function GetDataFromDB() As DataSet
' Declare con string and other sql objects
Dim strConString As String = "Data Source=Francis-pc;Initial Catalog=Francis;Integrated Security=True"
Dim sqlcon As New SqlConnection(strConString)
Dim sqlcmd As New SqlCommand()
sqlcmd.Connection = sqlcon
sqlcmd.CommandText = "select City_id, city_name from tblCity"
Dim sd As New SqlDataAdapter()
' Open the connection
sqlcon.Open()
' Execute the select statement
sd.SelectCommand = sqlcmd
' Fill it on the dataset
sd.Fill(dsCity)
' Close the connection
sqlcon.Close()
' Assign the datasource for the grid
dgView.DataSource = dsCity
' Bind the grid
dgView.DataBind()
End Function
'''
''' This event is fired when the "DataBind" to the grid. Fired for each row for the datasource
'''
'''
'''
'''
Protected Sub dgView_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles dgView.RowDataBound
' Check current row is a datarow
If e.Row.RowType = DataControlRowType.DataRow Then
' ' Declare con string and other sql objects
Dim strConString As String = "Data Source=Francis-pc;Initial Catalog=Francis;Integrated Security=True"
Dim sqlcon As New SqlConnection(strConString)
Dim sqlcmd As New SqlCommand()
sqlcmd.Connection = sqlcon
sqlcon.Open()
sqlcmd.CommandText = "select country_id, country_name from tblCountry"
Dim sd As New SqlDataAdapter()
sd.SelectCommand = sqlcmd
'Fill the country dataset
sd.Fill(dsCountry)
sqlcon.Close()
' Get the "Country" drop down object in THIS row
Dim ddlCountry As DropDownList = CType(e.Row.FindControl("ddlCountry"), DropDownList)
' Assign the "Country" dataset to the dropdown
ddlCountry.DataSource = dsCountry
ddlCountry.DataTextField = "country_name"
ddlCountry.DataValueField = "country_id"
' Bind the dropdown
ddlCountry.DataBind()
End If
End Sub
End Class
Happy Coding!!
0 comments :