FormView control Explained with Examples
Again i need to say that this is just one more brother of The previous three control
,but only difference is
FormView control is used to display a single record from a data source.
It is similar to the
DetailsView control,
except it displays user-defined templates instead of row fields. Creating your own
templates gives you greater flexibility in controlling how the data is displayed.
The
FormView control supports the following features:
-
Binding to data source controls, such as
SqlDataSource
and ObjectDataSource.
-
Built-in inserting capabilities.
-
Built-in updating and deleting capabilities.
-
Built-in paging capabilities.
-
Programmatic access to the FormView object model to dynamically set properties,
handle events, and so on.
-
Customizable appearance through user-defined templates, themes, and styles.
Templates
For the
FormView control to display content, you need to create templates
for the different parts of the control. Most templates are optional; however, you
must create a template for the mode in which the control is configured. For example,
a
FormView control that supports inserting records must have an insert item
template defined. The following table lists the different templates that you can
create.
|
EditItemTemplate
|
Defines the content for the data row when the FormView control is in edit
mode. This template usually contains input controls and command buttons with which
the user can edit an existing record.
|
|
EmptyDataTemplate
|
Defines the content for the empty data row displayed when the FormView control
is bound to a data source that does not contain any records. This template usually
contains content to alert the user that the data source does not contain any records.
|
|
FooterTemplate
|
Defines the content for the footer row. This template usually contains any additional
content you would like to display in the footer row.
|
Note
|
|
As an alternative, you can simply specify text to display in the footer row by setting
the FooterText property.
|
|
|
HeaderTemplate
|
Defines the content for the header row. This template usually contains any additional
content you would like to display in the header row.
|
Note
|
|
As an alternative, you can simply specify text to display in the header row by setting
the HeaderText property.
|
|
|
ItemTemplate
|
Defines the content for the data row when the FormView control is in read-only
mode. This template usually contains content to display the values of an existing
record.
|
|
InsertItemTemplate
|
Defines the content for the data row when the FormView control is in insert
mode. This template usually contains input controls and command buttons with which
the user can add a new record.
|
|
PagerTemplate
|
Defines the content for the pager row displayed when the paging feature is enabled
(when the AllowPaging property is set to true).
This template usually contains controls with which the user can navigate to another
record.
|
Note
|
|
The FormView control has a built-in pager row user interface (UI). You need
to create a pager template only if you want to create your own custom pager row.
|
|
To display the value of a field in an item template, use a data binding expression.
For more information on data binding expressions, see
Input controls in the edit item template and insert item template can be bound to
the fields of a data source by using a two-way binding expression. This allows the
FormView control to automatically extract the values of the input control
for an update or insert operation. Two-way binding expressions also allow input
controls in an edit item template to automatically display the original field values.
For more information on two-way binding expressions, see
Binding to
Databases
.
Binding to Data
The FormView control can be bound to a data source control (such as SqlDataSource,
AccessDataSource, ObjectDataSource
and so on), or to any data source that implements the
System.Collections.IEnumerable
interface (such as
System.Data.DataView
,
System.Collections.ArrayList
, and
System.Collections.Hashtable
). Use one of the following methods to bind the FormView control to the appropriate
data source type:
-
To bind to a data source control, set the <
DataSourceID
property of the FormView control to the
ID
value of the data source control. The FormView control automatically binds
to the specified data source control and can take advantage of the data source control's
capabilities to perform inserting, updating, deleting, and paging functionality.
This is the preferred method to bind to data.
-
To bind to a data source that implements the System.Collections.IEnumerable
interface, programmatically set the
DataSource
property of the FormView control to the data source and then call the
DataBind
method. When using this method, the FormView control does not provide built-in
inserting, updating, deleting, and paging functionality. You need to provide this
functionality by using the appropriate event.
For more information on data binding, see
Accessing Data with ASP.NET
.
|
Note
|
|
This control can be used to display user input, which might include malicious client
script. Check any information that is sent from a client for executable script,
SQL statements, or other code before displaying it in your application. Whenever
possible, it is strongly recommended that values are HTML-encoded before they are
displayed in this control. ASP.NET provides an input request validation feature
to block script and HTML in user input. Validation server controls are also provided
to assess user input. For more information, see
Introduction to the
Validation Controls
.
|
Data Operations
The FormView control provides many built-in capabilities that allow the user
to update, delete, insert, and page through items in the control. When the FormView
control is bound to a data source control, the FormView control can take
advantage of the data source control's capabilities and provide automatic updating,
deleting, inserting, and paging functionality.
|
Note
|
|
The FormView control can provide support for update, delete, insert, and
paging operations with other types of data sources; however, you must provide an
appropriate event handler with the implementation for these operations.
|
Because the FormView control uses templates, it does not provide a way to
automatically generate command buttons to perform updating, deleting, or inserting
operations. You must manually include these command buttons in the appropriate template.
The FormView control recognizes certain buttons that have their CommandName
properties set to specific values. The following table lists the command buttons
that the FormView control recognizes.
|
Cancel
|
"Cancel"
|
Used in updating or inserting operations to cancel the operation and to discard
the values entered by the user. The FormView control then returns to the
mode specified by the
DefaultMode
property.
|
|
Delete
|
"Delete"
|
Used in deleting operations to delete the displayed record from the data source.
Raises the ItemDeleting and
ItemDeleted events.
|
|
Edit
|
"Edit"
|
Used in updating operations to put the FormView control in edit mode. The
content specified in the EditItemTemplate property is displayed for the data
row.
|
|
Insert
|
"Insert"
|
Used in inserting operations to attempt to insert a new record in the data source
using the values provided by the user. Raises the
ItemInserting
and ItemInserted events.
|
|
New
|
"New"
|
Used in inserting operations to put the FormView control in insert mode.
The content specified in the InsertItemTemplate property is displayed for
the data row.
|
|
Page
|
"Page"
|
Used in paging operations to represent a button in the pager row that performs paging.
To specify the paging operation, set the CommandArgument property of the
button to "Next", "Prev", "First", "Last", or the index of the page to which to
navigate. Raises the
PageIndexChanging
and PageIndexChanged events.
|
Note
|
|
This type of button is typically used only in the pager template.
|
|
|
Update
|
"Update"
|
Used in updating operations to attempt to update the displayed record in the data
source with the values provided by the user. Raises the
ItemUpdating
and ItemUpdated events.
|
Unlike the Delete button (which deletes the displayed record immediately), when
the Edit or New button is clicked, the FormView control goes into edit or
insert mode, respectively. In edit mode, the content contained in the EditItemTemplate
property is displayed for the current data item. Typically, the edit item template
is defined such that the Edit button is replaced with an Update and a Cancel button.
Input controls that are appropriate for the field's data type (such as a
TextBox
or a CheckBox control) are also usually displayed
with a field's value for the user to modify. Clicking the Update button updates
the record in the data source, while clicking the Cancel button abandons any changes.
Likewise, the content contained in the InsertItemTemplate property is displayed
for the data item when the control is in insert mode. The insert item template is
typically defined such that the New button is replaced with an Insert and a Cancel
button, and empty input controls are displayed for the user to enter the values
for the new record. Clicking the Insert button inserts the record in the data source,
while clicking the Cancel button abandons any changes.
The FormView control provides a paging feature, which allows the user to
navigate to other records in the data source. When enabled, a pager row is displayed
in the FormView control that contains the page navigation controls. To enable
paging, set the AllowPaging property to true. You can customize the
pager row by setting the properties of objects contained in the
PagerStyle
and the PagerSettings property. Instead of using
the built-in pager row UI, you can create your own UI by using the PagerTemplate
property.
Customizing the User Interface
You can customize the appearance of the FormView control by setting the style
properties for the different parts of the control. The following table lists the
different style properties.
|
EditRowStyle
|
The style settings for the data row when the FormView control is in edit
mode.
|
|
EmptyDataRowStyle
|
The style settings for the empty data row displayed in the FormView control
when the data source does not contain any records.
|
|
FooterStyle
|
The style settings for the footer row of the FormView control.
|
|
HeaderStyle
|
The style settings for the header row of the FormView control.
|
|
InsertRowStyle
|
The style settings for the data row when the FormView control is in insert
mode.
|
|
PagerStyle
|
The style settings for the pager row displayed in the FormView control when
the paging feature is enabled.
|
|
RowStyle
|
The style settings for the data row when the FormView control is in read-only
mode.
|
Events
The FormView control provides several events that you can program against.
This allows you to run a custom routine whenever an event occurs. The following
table lists the events supported by the FormView control.
|
ItemCommand
|
Occurs when a button within a FormView control is clicked. This event is
often used to perform a task when a button is clicked in the control.
|
|
ItemCreated
|
Occurs after all FormViewRow objects are created in the
FormView control. This event is often used to modify the values of a record
before it is displayed.
|
|
ItemDeleted
|
Occurs when a Delete button (a button with its CommandName property set to
"Delete") is clicked, but after the FormView control deletes the record from
the data source. This event is often used to check the results of the delete operation.
|
|
ItemDeleting
|
Occurs when a Delete button is clicked, but before the FormView control deletes
the record from the data source. This event is often used to cancel the delete operation.
|
|
ItemInserted
|
Occurs when an Insert button (a button with its CommandName property set
to "Insert") is clicked, but after the FormView control inserts the record.
This event is often used to check the results of the insert operation.
|
|
ItemInserting
|
Occurs when an Insert button is clicked, but before the FormView control
inserts the record. This event is often used to cancel the insert operation.
|
|
ItemUpdated
|
Occurs when an Update button (a button with its CommandName property set
to "Update") is clicked, but after the FormView control updates the row.
This event is often used to check the results of the update operation.
|
|
ItemUpdating
|
Occurs when an Update button is clicked, but before the FormView control
updates the record. This event is often used to cancel the update operation.
|
|
ModeChanged
|
Occurs after the FormView control changes modes (to edit, insert, or read-only
mode). This event is often used to perform a task when the FormView control
changes modes.
|
|
ModeChanging
|
Occurs before the FormView control changes modes (to edit, insert, or read-only
mode). This event is often used to cancel a mode change.
|
|
PageIndexChanged
|
Occurs when one of the pager buttons is clicked, but after the FormView control
handles the paging operation. This event is commonly used when you need to perform
a task after the user navigates to a different record in the control.
|
|
PageIndexChanging
|
Occurs when one of the pager buttons is clicked, but before the FormView
control handles the paging operation. This event is often used to cancel the paging
operation.
|
The following example demonstrates how to use a FormView control to display
the values from a SqlDataSource control.
<%@ Page language="VB" %>
<html>
<body>
<form runat="server">
<h3>FormView Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<h3><%# Eval("FirstName") %> <%# Eval("LastName") %></h3>
<%# Eval("Title") %>
</td>
</tr>
</table>
</itemtemplate>
<pagersettings position="Bottom"
mode="NextPrevious"/>
</asp:formview>
<!-- This example uses Microsoft SQL Server and connects
--> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression
to retrieve the connection string value --> <!-- from the Web.config file.
-->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName],
[Title], [PhotoPath] From [Employees]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
|
<%@ Page language="C#" %>
<html>
<body>
<form runat="server">
<h3>FormView Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
runat="server">
<itemtemplate>
<table>
<tr>
<td>
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td>
<h3><%# Eval("FirstName") %> <%# Eval("LastName") %></h3>
<%# Eval("Title") %>
</td>
</tr>
</table>
</itemtemplate>
<pagersettings position="Bottom"
mode="NextPrevious"/>
</asp:formview>
<!-- This example uses Microsoft SQL Server and connects
--> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression
to retrieve the connection string value --> <!-- from the Web.config file.
-->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName],
[Title], [PhotoPath] From [Employees]"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
|
The following example demonstrates how to use a FormView control to edit
existing records.
<%@ Page language="VB" %>
<script runat="server">
Sub EmployeeFormView_ItemUpdating(ByVal sender As Object, ByVal e As FormViewUpdateEventArgs)
Handles EmployeeFormView.ItemUpdating
' Validate the field values entered by the user. This '
example determines whether the user left any fields ' empty. Use the NewValues property
to access the new ' values entered by the user.
Dim emptyFieldList As ArrayList = ValidateFields(e.NewValues)
If emptyFieldList.Count > 0 Then
' The user left some fields empty. Display an error message.
' Use the Keys property to retrieve the key field value. Dim keyValue As String = e.Keys("EmployeeID").ToString()
MessageLabel.Text = "You must enter a value for each field of record " & _
keyValue & ".<br/>The following fields are missing:<br/><br/>"
' Display the missing fields.
Dim value As String
For Each value In emptyFieldList
' Use the OldValues property to access the original value
' of a field.
MessageLabel.Text &= value & " - Original Value = " & _
e.OldValues(value).ToString() & "<br>"
Next
' Cancel the update operation.
e.Cancel = True
Else
' The field values passed validation. Clear the
' error message label.
MessageLabel.Text = ""
End If
End Sub
Function ValidateFields(ByVal list As
IOrderedDictionary) As ArrayList
' Create an ArrayList object to store the ' names of any
empty fields. Dim emptyFieldList As New ArrayList()
' Iterate though the field values entered by ' the user
and check for an empty field. Empty ' fields contain a null value. Dim entry As DictionaryEntry
For Each entry In list
If entry.Value Is String.Empty Then
' Add the field name to the ArrayList object.
emptyFieldList.Add(entry.Key.ToString())
End If
Next
Return emptyFieldList
End Function
Sub EmployeeFormView_ModeChanging(ByVal
sender As Object, ByVal e As FormViewModeEventArgs)
Handles EmployeeFormView.ModeChanging
If e.CancelingEdit Then
' The user canceled the update operation. ' Clear the error
message label. MessageLabel.Text = ""
End If
End Sub
</script>
<html>
<body>
<form runat="server">
<h3>FormView Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
headertext="Employee Record"
emptydatatext="No employees found."
runat="server">
<headerstyle backcolor="CornFlowerBlue"
forecolor="White"
font-size="14"
horizontalalign="Center"
wrap="false"/>
<rowstyle backcolor="LightBlue"
wrap="false"/>
<pagerstyle backcolor="CornFlowerBlue"/>
<itemtemplate>
<table>
<tr>
<td rowspan="6">
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<%# Eval("FirstName") %> <%# Eval("LastName") %>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<%# Eval("Title") %>
</td>
</tr>
<tr>
<td>
<b>Hire Date:</b>
</td>
<td>
<%# Eval("HireDate","{0:d}") %>
</td>
</tr>
<tr height="150" valign="top">
<td>
<b>Address:</b>
</td>
<td>
<%# Eval("Address") %><br/>
<%# Eval("City") %> <%# Eval("Region") %>
<%# Eval("PostalCode") %><br/>
<%# Eval("Country") %>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="Edit"
text="Edit"
commandname="Edit"
runat="server"/>
</td>
</tr>
</table>
</itemtemplate>
<edititemtemplate>
<table>
<tr>
<td rowspan="6">
<asp:image id="EmployeeEditImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<asp:textbox id="FirstNameUpdateTextBox"
text='<%# Bind("FirstName") %>'
runat="server"/>
<asp:textbox id="LastNameUpdateTextBox"
text='<%# Bind("LastName") %>'
runat="server"/>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<asp:textbox id="TitleUpdateTextBox"
text='<%# Bind("Title") %>'
runat="server"/>
</td>
</tr>
<tr>
<td>
<b>Hire Date:</b>
</td>
<td>
<asp:textbox id="HireDateUpdateTextBox"
text='<%# Bind("HireDate", "{0:d}") %>'
runat="server"/>
</td>
</tr>
<tr height="150" valign="top">
<td>
<b>Address:</b>
</td>
<td>
<asp:textbox id="AddressUpdateTextBox"
text='<%# Bind("Address") %>'
runat="server"/>
<br/>
<asp:textbox id="CityUpdateTextBox"
text='<%# Bind("City") %>'
runat="server"/>
<asp:textbox id="RegionUpdateTextBox"
text='<%# Bind("Region") %>'
width="40"
runat="server"/>
<asp:textbox id="PostalCodeUpdateTextBox"
text='<%# Bind("PostalCode") %>'
width="60"
runat="server"/>
<br/>
<asp:textbox id="CountryUpdateTextBox"
text='<%# Bind("Country") %>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="UpdateButton"
text="Update"
commandname="Update"
runat="server"/>
<asp:linkbutton id="CancelButton"
text="Cancel"
commandname="Cancel"
runat="server"/>
</td>
</tr>
</table>
</edititemtemplate>
<pagersettings position="Bottom"
mode="Numeric"/>
</asp:formview>
<br/><br/>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects
--> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression
to retrieve the connection string value --> <!-- from the Web.config file.
-->
<asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName],
[Title], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath]
From [Employees]" updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName,
[Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode,
[Country]=@Country Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
|
<%@ Page language="C#" %>
<script runat="server">
void EmployeeFormView_ItemUpdating(Object sender, FormViewUpdateEventArgs e)
{
// Validate the field values entered by the user. This
// example determines whether the user left any fields // empty. Use the NewValues
property to access the new // values entered by the user.
ArrayList emptyFieldList = ValidateFields(e.NewValues);
if (emptyFieldList.Count > 0)
{
// The user left some fields empty. Display an error message.
// Use the Keys property to retrieve the key field value.
String keyValue = e.Keys["EmployeeID"].ToString();
MessageLabel.Text = "You must enter a value for each field of record " +
keyValue + ".<br/>The following fields are missing:<br/><br/>";
// Display the missing fields.
foreach (String value in emptyFieldList)
{
// Use the OldValues property to access the original value
// of a field. MessageLabel.Text += value + " - Original Value = " +
e.OldValues[value].ToString() + "<br>";
}
// Cancel the update operation.
e.Cancel = true;
}
else
{
// The field values passed validation. Clear the // error
message label. MessageLabel.Text = "";
}
}
ArrayList ValidateFields(IOrderedDictionary list)
{
// Create an ArrayList object to store the // names of
any empty fields. ArrayList emptyFieldList = new ArrayList();
// Iterate though the field values entered by // the user
and check for an empty field. Empty // fields contain a null value. foreach (DictionaryEntry entry in list)
{
if (entry.Value == String.Empty)
{
// Add the field name to the ArrayList object.
emptyFieldList.Add(entry.Key.ToString());
}
}
return emptyFieldList;
}
void EmployeeFormView_ModeChanging(Object sender, FormViewUpdateEventArgs e)
{
if (e.CancelingEdit)
{
// The user canceled the update operation.
// Clear the error message label.
MessageLabel.Text = "";
}
}
</script>
<html>
<body>
<form runat="server">
<h3>FormView Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
headertext="Employee Record"
emptydatatext="No employees found."
onitemupdating="EmployeeFormView_ItemUpdating"
onmodechanging="EmployeeFormView_ModeChanging"
runat="server">
<headerstyle backcolor="CornFlowerBlue"
forecolor="White"
font-size="14"
horizontalalign="Center"
wrap="false"/>
<rowstyle backcolor="LightBlue"
wrap="false"/>
<pagerstyle backcolor="CornFlowerBlue"/>
<itemtemplate>
<table>
<tr>
<td rowspan="6">
<asp:image id="EmployeeImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<%# Eval("FirstName") %> <%# Eval("LastName") %>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<%# Eval("Title") %>
</td>
</tr>
<tr>
<td>
<b>Hire Date:</b>
</td>
<td>
<%# Eval("HireDate","{0:d}") %>
</td>
</tr>
<tr height="150" valign="top">
<td>
<b>Address:</b>
</td>
<td>
<%# Eval("Address") %><br/>
<%# Eval("City") %> <%# Eval("Region") %>
<%# Eval("PostalCode") %><br/>
<%# Eval("Country") %>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="Edit"
text="Edit"
commandname="Edit"
runat="server"/>
</td>
</tr>
</table>
</itemtemplate>
<edititemtemplate>
<table>
<tr>
<td rowspan="6">
<asp:image id="EmployeeEditImage"
imageurl='<%# Eval("PhotoPath") %>'
alternatetext='<%# Eval("LastName") %>'
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<asp:textbox id="FirstNameUpdateTextBox"
text='<%# Bind("FirstName") %>'
runat="server"/>
<asp:textbox id="LastNameUpdateTextBox"
text='<%# Bind("LastName") %>'
runat="server"/>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<asp:textbox id="TitleUpdateTextBox"
text='<%# Bind("Title") %>'
runat="server"/>
</td>
</tr>
<tr>
<td>
<b>Hire Date:</b>
</td>
<td>
<asp:textbox id="HireDateUpdateTextBox"
text='<%# Bind("HireDate", "{0:d}") %>'
runat="server"/>
</td>
</tr>
<tr height="150" valign="top">
<td>
<b>Address:</b>
</td>
<td>
<asp:textbox id="AddressUpdateTextBox"
text='<%# Bind("Address") %>'
runat="server"/>
<br/>
<asp:textbox id="CityUpdateTextBox"
text='<%# Bind("City") %>'
runat="server"/>
<asp:textbox id="RegionUpdateTextBox"
text='<%# Bind("Region") %>'
width="40"
runat="server"/>
<asp:textbox id="PostalCodeUpdateTextBox"
text='<%# Bind("PostalCode") %>'
width="60"
runat="server"/>
<br/>
<asp:textbox id="CountryUpdateTextBox"
text='<%# Bind("Country") %>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="UpdateButton"
text="Update"
commandname="Update"
runat="server"/>
<asp:linkbutton id="CancelButton"
text="Cancel"
commandname="Cancel"
runat="server"/>
</td>
</tr>
</table>
</edititemtemplate>
<pagersettings position="Bottom"
mode="Numeric"/>
</asp:formview>
<br/><br/>
<asp:label id="MessageLabel"
forecolor="Red"
runat="server"/>
<!-- This example uses Microsoft SQL Server and connects
--> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression
to retrieve the connection string value --> <!-- from the Web.config file.
--> <asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName],
[Title], [Address], [City], [Region], [PostalCode], [Country], [HireDate], [PhotoPath]
From [Employees]" updatecommand="Update [Employees] Set [LastName]=@LastName, [FirstName]=@FirstName,
[Title]=@Title, [Address]=@Address, [City]=@City, [Region]=@Region, [PostalCode]=@PostalCode,
[Country]=@Country Where [EmployeeID]=@EmployeeID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
|
The following example demonstrates how to use a FormView control to insert
new records.
<%@ Page language="VB" %>
<html>
<body>
<form runat="server">
<h3>FormView InsertItemTemplate Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
emptydatatext="No employees found."
runat="server">
<rowstyle backcolor="LightGreen"
wrap="false"/>
<insertrowstyle backcolor="LightBlue"
wrap="false"/>
<itemtemplate>
<table>
<tr>
<td rowspan="5">
<asp:image id="CompanyLogoImage"
imageurl="~/Images/Logo.jpg"
alternatetext="Company Logo"
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<%# Eval("FirstName") %> <%# Eval("LastName") %></td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<%# Eval("Title") %> </td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="NewButton"
text="New"
commandname="New"
runat="server"/>
</td>
</tr>
</table>
</itemtemplate>
<insertitemtemplate>
<table>
<tr>
<td rowspan="4">
<asp:image id="CompanyLogoEditImage"
imageurl="~/Images/Logo.jpg"
alternatetext="Company Logo"
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<asp:textbox id="FirstNameInsertTextBox"
text='<%# Bind("FirstName") %>'
runat="server"/>
<asp:textbox id="LastNameInsertTextBox"
text='<%# Bind("LastName") %>'
runat="server"/>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<asp:textbox id="TitleInsertTextBox"
text='<%# Bind("Title") %>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="InsertButton"
text="Insert"
commandname="Insert"
runat="server"/>
<asp:linkbutton id="CancelButton"
text="Cancel"
commandname="Cancel"
runat="server"/>
</td>
</tr>
</table>
</insertitemtemplate>
</asp:formview>
<!-- This example uses Microsoft SQL Server and connects
--> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression
to retrieve the connection string value --> <!-- from the Web.config file.
--> <asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName],
[Title], [PhotoPath] From [Employees]" insertcommand="Insert Into [Employees] ([LastName],
[FirstName], [Title]) VALUES (@LastName, @FirstName, @Title)" connectionstring="<%$
ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
|
<%@ Page language="C#" %>
<html>
<body>
<form runat="server">
<h3>FormView InsertItemTemplate Example</h3>
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource"
allowpaging="true"
datakeynames="EmployeeID"
emptydatatext="No employees found."
runat="server">
<rowstyle backcolor="LightGreen"
wrap="false"/>
<insertrowstyle backcolor="LightBlue"
wrap="false"/>
<itemtemplate>
<table>
<tr>
<td rowspan="5">
<asp:image id="CompanyLogoImage"
imageurl="~/Images/Logo.jpg"
alternatetext="Company Logo"
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<%# Eval("FirstName") %> <%# Eval("LastName") %>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<%# Eval("Title") %>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="NewButton"
text="New"
commandname="New"
runat="server"/>
</td>
</tr>
</table>
</itemtemplate>
<insertitemtemplate>
<table>
<tr>
<td rowspan="4">
<asp:image id="CompanyLogoEditImage"
imageurl="~/Images/Logo.jpg"
alternatetext="Company Logo"
runat="server"/>
</td>
<td colspan="2">
</td>
</tr>
<tr>
<td>
<b>Name:</b>
</td>
<td>
<asp:textbox id="FirstNameInsertTextBox"
text='<%# Bind("FirstName") %>'
runat="server"/>
<asp:textbox id="LastNameInsertTextBox"
text='<%# Bind("LastName") %>'
runat="server"/>
</td>
</tr>
<tr>
<td>
<b>Title:</b>
</td>
<td>
<asp:textbox id="TitleInsertTextBox"
text='<%# Bind("Title") %>'
runat="server"/>
</td>
</tr>
<tr>
<td colspan="2">
<asp:linkbutton id="InsertButton"
text="Insert"
commandname="Insert"
runat="server"/>
<asp:linkbutton id="CancelButton"
text="Cancel"
commandname="Cancel"
runat="server"/>
</td>
</tr>
</table>
</insertitemtemplate>
</asp:formview>
<!-- This example uses Microsoft SQL Server and connects
--> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression
to retrieve the connection string value --> <!-- from the Web.config file.
--> <asp:sqldatasource id="EmployeeSource"
selectcommand="Select [EmployeeID], [LastName], [FirstName],
[Title], [PhotoPath] From [Employees]" insertcommand="Insert Into [Employees] ([LastName],
[FirstName], [Title]) VALUES (@LastName, @FirstName, @Title)"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"/>
</form>
</body>
</html>
|