<asp:Parameter Name="HomePhone" Type="String" />
<asp:Parameter Name="Extension" Type="String" />
<asp:Parameter Name="MobilePhone" Type="String" />
<asp:Parameter Name="EmployeeID" Type="Int32" />
</UpdateParameters>
<SelectParameters>
<asp:ControlParameter ControlID="grid" Name="EmployeeID"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
<InsertParameters>
<asp:Parameter Name="DepartmentID" Type="Int32" />
<asp:Parameter Name="Name" Type="String" />
<asp:Parameter Name="Username" Type="String" />
<asp:Parameter Name="Password" Type="String" />
<asp:Parameter Name="Address" Type="String" />
<asp:Parameter Name="City" Type="String" />
<asp:Parameter Name="State" Type="String" />
<asp:Parameter Name="Zip" Type="String" />
<asp:Parameter Name="HomePhone" Type="String" />
<asp:Parameter Name="Extension" Type="String" />
<asp:Parameter Name="MobilePhone" Type="String" />
</InsertParameters>
</asp:SqlDataSource>
As you can see, the SqlDataSource contains the UPDATE, DELETE, and INSERT
queries it needs to execute when the user performs these actions on the
DetailsView. These are parameterized queries, and a data type is specified for
each of the parameters, which, as you already know, is good programming practice.
You might also notice that the names of the fields and tables are surrounded by
square brackets ([ and ]). These square brackets allow us to include spaces and
other special characters in table names. Since none of our field or table names
contain spaces, we havent had to worry about this issue so far, but facilitating
the inclusion of spaces is a good idea.
The SqlDataSource is the perfect tool when you need to create fully featured
forms such as the address book quickly and easily for smaller projects like the
Dorknozzle intranet. As the DetailsView and GridView controls are tightly
integrated with the data source controls, they allow us to implement a lot of
functionality without writing any code.
Displaying Lists in DetailsView
We want to improve on our DetailsView by making it show a list of departments
instead of department IDs. This makes sense, as its much easier for users to select
489
Displaying Lists in DetailsView
the name of a department than a department ID when theyre updating or inser-
ting the details of an employee. Figure 12.16 shows how the page will look once
weve created this functionality.
Figure 12.16. Viewing the Department drop-down list in DetailsView
Start by adding a new SqlDataSource control beside the two existing data source
controls in AddressBook.aspx. Name the control departmentsDataSource, click
its smart tag, and select Configure Data Source. In the first screen, select the
Dorknozzle connection, then click Next. Specify the Departments table and select
both of its columns, as shown in Figure 12.17.
Click Next, then Finish to save the data source configuration. The definition of
your new data source control will look like this:
File: AddressBook.aspx (excerpt)
<asp:SqlDataSource id="departmentsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:Dorknozzle %>"
490
Chapter 12: Advanced Data Access
Figure 12.17. Specifying the Departments data source
SelectCommand="SELECT [DepartmentID], [Department]
FROM [Departments]" />
Now, with AddressBook.aspx open in Design View, click the DetailsView
controls smart tag, select Edit Fields, and transform the Department ID Bound-
Field into a TemplateFieldyou learned how to do this back in Chapter 11.
Now, switch to Source View, and locate the Department ID TemplateField that
you just generated. It should look something like this:
File: AddressBook.aspx (excerpt)
<asp:TemplateField HeaderText="DepartmentID"
SortExpression="DepartmentID">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Bind("DepartmentID") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server"
Text='<%# Bind("DepartmentID") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server"
491
Displaying Lists in DetailsView

Get Build Your Own ASP.NET 2.0 Web Site Using C# & VB, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.