Easy-to-follow video tutorials help you learn software, creative, and business skills.Become a member
Dynamic websites frequently need a user interface that allows the user modify the data in the server-side database. Data entry systems on websitea typically consist of multiple pages. A list page which displays the key columns of a particular database, table links from that list page to an insert form which allow the user to add a new record to the database table, and an update page which presents the details of a selected record and allows the user to make the changes to that data. I am going to start in this video by showing you how to use the control called the DetailsView. It's similar to a GridView in that it bounds to an SqlDataSource which in turn is making queries to a server-side database table, but it's designed to show one record at a time. I'll start with an existing website.
Go to the menu and select File > Open Web Site and select the folder DataEntry and click Open and then start with the file AuthorDetail.aspx. I'll look at the page in Design view. The page currently displays a banner and a set of hyperlinks that are a part of server- side control called Header and otherwise has just blank space. Before I use the DetailsView, I want to create an SqlDataSource that points to the particular table I want the user to edit. I'll go to the Database Explorer and if you are following along and you don't see your list of Tables just open up the Database Connection and then click the Refresh button if necessary.
You should see the list of tables there. Then I'll locate the table I want the user to be able to modify, authors, and I'll drag and drop the table and place it into the blank space in the page. When you drag the table into the page you get both the SqlDataSource at the bottom but also the GridView. I'm not going to use the GridView in this exercise. So I'll press the Delete key. That will delete the GridView and I'll be left with the SqlDataSource. Then I'll press the Enter key and that will create the paragraph above the SqlDataSource, a place where I can put my new DetailsView control.
The DetailsView can be dragged in from the Toolbox panel. I'll go to the Toolbox tab on the left. I'll move the cursor over the tab to cause the panel to slide out and then I'll click to the Pushpin icon to pin the Toolbox panel and make it possible to see both the Toolbox and the page in Design View. Now, in the Toolbox panel open up your Data category. If you are only seeing the Standard category open, close it and then click the + icon next to Data and then locate the DetailsView control. Click and drag DetailsView and drop it inside the empty paragraph. When you initially create the DetailsView it won't be bound to a data source. So with the Task list open which it should be automatically, go to Choose Data Source open the list, select SqlDataSource1. The data source that was just created and you should see the DetailsView control automatically display all of the columns from the database.
If you don't see the columns try clicking the Refresh Schema link that you will see on the Task list and then you should definitely see the controls appear. Now save your changes by pressing Ctrl+ S then go to the menu and select Debug > Start Without Debugging. By default the DetailsView will show the details of the first record in the data set. You will notice some visual problems. First of all in the left column where the labels appear, the labels are the same as the actual database column names. Just as with the GridView you need to modify these values yourself. You will also notice that the right column, which displayed the data, is word wrapping.
This is something you can also fix just through setting properties. So close the browser and we'll make those changes. First, I'm going to apply some simple visual formatting. Just as with the GridView, you can use the AutoFormat feature, which applies a set of connected properties to present a particular look and feel. Click the Smart Task icon to open the Task list and then select AutoFormat. You will see a number of formats presented, you can click through and select the one that you like. I'm going to choose this Simple format and click OK.
Now I'll save my changes and once again run the page and you will see that the formatting is presented but once again I still need to fix my headers and the word wrapping. So I'll close the browser. You can fix the Header Text either through Visual Web Developer's visual interface or in code. Just as with the GridView, if you want to do it through Visual Web Developer's interface, go to the Task list and select Edit Fields. Then in the selected Fields list click on each column that you want to modify locate the HeaderText value and update it.
I will type in Author ID. Notice that when I press the Tab key that the new values reflected in the Field list. If you prefer you can work in source code. I'll click OK to save those changes. Then I'll click anywhere on the page to clear the Task list and click the Source button. Then I'll press Alt+Shift+Enter to look at the page in Full Screen. Then I'll navigate to the BoundField List. I'll locate each of the HeaderText properties and modify it. I'll change au_lname to Last Name. I'll change au_fname. To delete the text I'm placing the cursor at the end of the string and then pressing Ctrl+Backspace.
Then I'll type in First Name and then for each of the other columns I'll just capitalize the initial character. I will run the page again and I'll show you that everything seems to be working. Now I'm going to deal with the word wrapping issue. I'll close the browser and then go into the Design View, I'll open the Task List and once again go to Edit Fields. For each column that I want to prevent from word wrapping I'll click on the column in the Selected fields list then I'll scroll down to the bottom to the Styles section.
I will go to the ItemStyle, scroll down a little bit further and then I'll change the Wrap property from True to False. And I'll do this on each of the columns that I want to prevent from wrapping. Notice that as you move through the columns the BoundField properties list doesn't scroll. This makes it very easy to go through and handle one field at a time. I will click OK and then you can also deal with the word wrapping in the labels by going into the Header Properties, but a simpler approach is simply to make the whole control a little bit wider, so that there is plenty of space for those labels. So I'll drag that out to a width of 170 pixels or thereabout, you don't have to be exact. Then I'll press Ctrl+S and Ctrl+F5 to run the page again.
Now I'm seeing that the data isn't word wrapping. If you are still seeing word wrapping in the labels, go back to Edit Fields. Go to the fields that have spaces in them, go to HeaderStyle and change the Wrap property to False. I'll only do this on the columns where the HeaderText has a space in the middle, Author ID, First Name and Last Name. I will click OK. Press Ctrl+S to save, Ctrl+F5 to run and now when the DetailsView is displayed on the screen nothing is word wrapping and the labels and the data are displaying cleanly. So that's how you add a DetailsView control to a page and control its formatting and presentation.
Get unlimited access to all courses for just $25/month.Become a member
61 Video lessons · 100263 Viewers
56 Video lessons · 113233 Viewers
71 Video lessons · 82114 Viewers
131 Video lessons · 39408 Viewers
Access exercise files from a button right under the course name.
Search within course videos and transcripts, and jump right to the results.
Remove icons showing you already watched videos if you want to start over.
Make the video wide, narrow, full-screen, or pop the player out of the page into its own window.
Click on text in the transcript to jump to that spot in the video. As the video plays, the relevant spot in the transcript will be highlighted.