ASP.NET GridView Tutorial
Lesson 182 of 301 · Detailsview in asp.net – Part 37 · Database
Detailsview in asp.net – Part 37
Link for csharp, asp.net, ado.net, dotnet basics and sql server video tutorial playlists
http://www.youtube.com/user/kudvenkat/playlists
Link for text version of this video
http://csharp-video-tutorials.blogspot.com/2013/03/detailsview-in-aspnet-part-37.html
Just like gridview, detailsview is also a databound control. Detailsview is used to display one row at a time. Let us understand a practical use of details view with an example.
I have table tblEmployee with 10 columns. Use the sql script below to create and populate this table with sample data.
Create table tblEmployee
(
Id int primary key identity(1,1),
FirstName nvarchar(50),
LastName nvarchar(50),
City nvarchar(20),
Gender nvarchar(10),
DateOfBirth DateTime,
Country nvarchar(10),
Salary int,
DateOfJoining DateTime,
MaritalStatus nvarchar(20)
)
Insert into tblEmployee values(‘Tom’,’Minst’,’Alexandria’,’Male’,’10/10/1980′,’USA’,5000,’09/09/2003′,’Married’)
Insert into tblEmployee values(‘Pam’,’Bruney’,’Falls Church’,’Female’,’11/09/1979′,’USA’,3400,’07/07/2008′,’Married’)
Insert into tblEmployee values(‘John’,’Oswin’,’London’,’Male’,’03/08/1980′,’UK’,5500,’06/02/2001′,’Single’)
Insert into tblEmployee values(‘Nick’,’Lan’,’New Delhi’,’Male’,’05/09/1975′,’India’,7800,’01/05/1995′,’Married’)
Insert into tblEmployee values(‘James’,’Marshal’,’London’,’Male’,’01/10/1977′,’UK’,6300,’08/09/2001′,’Single’)
In a gridview control, I just want to show 3 columns (Id, FirstName and City) from tblEmployee table. As soon as I select a row, in the gridview control, then all the columns of the selected row, should be displayed in details view control.
To achieve this
Step 1: Drag and drop a gridview and a detailsview control on webform1.aspx
Step 2: Drag and drop 2 sqldatasource controls
Step 3: Configure SqlDataSource1 to retrieve [Id], [FirstName], [City] columns from tblEmployee table
Step 4: Associate SqlDataSource1 with GridView1 control
Step 5: Configure SqlDataSource2 to retrieve all columns from tblEmployee table. Add a WHERE clause to filter the rows based on the selected row in GridView1 control.
Step 6: Associate SqlDataSource2 with DetailsView1 control
Now set the colour scheme of GridView1 and DetailsView1 to BrownSugar and run the application. DetailsView is rendered as an empty box. This is because we don’t have any row selected in GridView1 intially. To correct this issue copy and paste the following code in webform1.aspx.cs
protected void Page_PreRender(object sender, EventArgs e)
{
if (GridView1.SelectedRow == null)
{
DetailsView1.Visible = false;
}
else
{
DetailsView1.Visible = true;
}
}
Detailsview can also be used to perform insert, edit, and delete. We will discuss about these in a later video session.