FormView クラス
アセンブリ: System.Web (system.web.dll 内)

<ControlValuePropertyAttribute("SelectedValue")> _ Public Class FormView Inherits CompositeDataBoundControl Implements IDataItemContainer, INamingContainer, IPostBackEventHandler, IPostBackContainer
[ControlValuePropertyAttribute("SelectedValue")] public class FormView : CompositeDataBoundControl, IDataItemContainer, INamingContainer, IPostBackEventHandler, IPostBackContainer
[ControlValuePropertyAttribute(L"SelectedValue")] public ref class FormView : public CompositeDataBoundControl, IDataItemContainer, INamingContainer, IPostBackEventHandler, IPostBackContainer

FormView コントロールは、データ ソースから単一レコードを表示するために使用されます。このコントロールは、行フィールドではなく、ユーザー定義のテンプレートを表示するという点を除いて、DetailsView コントロールに似ています。独自のテンプレートを作成すると、データの表示方法をより柔軟に制御できます。FormView コントロールは、次の機能をサポートしています。
-
SqlDataSource や ObjectDataSource などのデータ ソース コントロールへのバインド。
-
プロパティを動的に設定したり、イベントを処理したりするための、FormView オブジェクト モデルへのプログラムによるアクセス。
コンテンツを表示する FormView コントロールの場合、コントロールのさまざまな部分用にテンプレートを作成する必要があります。ほとんどのテンプレートは省略可能ですが、コントロールの構成が行われるモードについては、テンプレートを作成する必要があります。たとえば、レコードの挿入をサポートする FormView コントロールには、項目挿入テンプレートを定義する必要があります。作成できるさまざまなテンプレートの一覧を次の表に示します。
EditItemTemplate | FormView コントロールが編集モードの場合のデータ行のコンテンツを定義します。通常、このテンプレートには、ユーザーが既存のレコードの編集に使用できる入力コントロールとコマンド ボタンが含まれます。 |
EmptyDataTemplate | レコードが格納されていないデータ ソースに FormView コントロールがバインドされている場合に表示される、空のデータ行用のコンテンツを定義します。通常、このテンプレートには、データ ソースにレコードが格納されていないことをユーザーに警告するコンテンツが含まれます。 |
FooterTemplate | |
HeaderTemplate | |
ItemTemplate | FormView コントロールが読み取り専用モードの場合のデータ行のコンテンツを定義します。通常、このテンプレートには、既存のレコードの値を表示するコンテンツが含まれます。 |
InsertItemTemplate | FormView コントロールが挿入モードの場合のデータ行のコンテンツを定義します。通常、このテンプレートには、ユーザーが新規レコードの追加に使用できる入力コントロールとコマンド ボタンが含まれます。 |
PagerTemplate | ページング機能が有効になっている場合 (AllowPaging プロパティが true に設定されている場合) に表示されるページ行のコンテンツを定義します。通常、このテンプレートには、ユーザーが別のレコードへの移動に使用できるコントロールが含まれます。 |
項目テンプレート内のフィールドの値を表示するには、データ バインド式を使用します。データ バインド式の詳細については、「データ バインド式構文」を参照してください。
項目編集テンプレートと項目挿入テンプレートの入力コントロールは、双方向のバインド式を使用して、データ ソースのフィールドにバインドできます。これにより、FormView コントロールは、更新操作または挿入操作用に入力コントロールの値を自動的に取得できます。双方向のバインド式を使用すると、項目編集テンプレートの入力項目にも自動的に元のフィールド値を表示できます。双方向のバインド式の詳細については、「データベースへのバインド」を参照してください。
データへのバインド
FormView コントロールは、データ ソース コントロール (SqlDataSource、AccessDataSource、ObjectDataSource など)、または System.Collections.IEnumerable インターフェイスを実装するデータ ソース (System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable など) にバインドできます。FormView コントロールを適切なデータ ソースの種類にバインドするには、次のいずれかの方法を使用します。
-
データ ソース コントロールにバインドするには、FormView コントロールの DataSourceID プロパティをデータ ソース コントロールの ID 値に設定します。FormView コントロールは、指定したデータ ソース コントロールに自動的にバインドされ、データ ソース コントロールの機能を利用して、挿入、更新、削除、およびページングの各機能を実行できます。データにバインドするには、この方法をお勧めします。
-
System.Collections.IEnumerable インターフェイスを実装するデータ ソースにバインドするには、プログラムによって FormView コントロールの DataSource プロパティをデータ ソースに設定してから、DataBind メソッドを呼び出します。このメソッドを使用すると、FormView コントロールは、組み込みの挿入、更新、削除、およびページングの各機能を提供しません。適切なイベントを使用して、この機能を提供する必要があります。
データ バインディングの詳細については、「ASP.NET でのデータ アクセス」を参照してください。
![]() |
---|
このコントロールは、ユーザー入力を表示するために使用できます。ユーザー入力には悪意のあるクライアント スクリプトが含まれている可能性があります。アプリケーションに表示する前に、クライアントから送信された実行スクリプト、SQL ステートメントなどのコードの情報はすべて検査してください。できる限り、値は、このコントロールに表示する前に HTML エンコードするようにしてください。ASP.NET には入力要求の検証機能があり、ユーザー入力の中のスクリプトと HTML をブロックできます。検証サーバー コントロールは、ユーザー入力を査定する目的でも用意されています。詳細については、「検証コントロールの概要」を参照してください。 |
データ操作
FormView コントロールには、ユーザーがそのコントロール内の項目を使用して更新、削除、挿入、ページングを実行できる多数の組み込み機能が用意されています。FormView コントロールがデータ ソース コントロールにバインドされている場合、FormView コントロールは、データ ソース コントロールの機能を利用して、自動的な更新、削除、挿入、およびページングの各機能を提供します。
![]() |
---|
他の種類のデータ ソースでも、FormView コントロールは更新、削除、挿入、およびページングの各操作をサポートできますが、これらの操作の実装で、適切なイベント ハンドラを用意する必要があります。 |
FormView コントロールではテンプレートを使用するため、更新、削除、または挿入の各操作を実行するためのコマンド ボタンを自動的に生成する手段は用意されていません。これらのコマンド ボタンは、該当するテンプレートに手動で挿入する必要があります。FormView コントロールは、CommandName プロパティが特定の値に設定されているボタンを認識します。FormView コントロールが認識するコマンド ボタンの一覧を次の表に示します。
Commandname 値 | ||
---|---|---|
"Cancel" | 操作をキャンセルし、ユーザーが入力した値を破棄する更新操作または挿入操作で使用します。FormView コントロールは、その後、DefaultMode プロパティで指定されたモードに戻ります。 | |
"Delete" | 表示されているレコードをデータ ソースから削除する削除操作で使用します。ItemDeleting イベントおよび ItemDeleted イベントを発生させます。 | |
"Edit" | FormView コントロールを編集モードにする更新操作で使用します。EditItemTemplate プロパティで指定されたコンテンツがデータ行に表示されます。 | |
"Insert" | ユーザーが入力した値を使用してデータ ソースに新規レコードを挿入する挿入操作で使用します。ItemInserting イベントおよび ItemInserted イベントを発生させます。 | |
"New" | FormView コントロールを挿入モードにする挿入操作で使用します。InsertItemTemplate プロパティで指定されたコンテンツがデータ行に表示されます。 | |
"Page" | ページングを実行するページ行のボタンを表すページング操作で使用します。ページング操作を指定するには、ボタンの CommandArgument プロパティを "Next"、"Prev"、"First"、"Last"、または移動先のページのインデックスに設定します。PageIndexChanging イベントおよび PageIndexChanged イベントを発生させます。 | |
"Update" | ユーザーが入力した値を使用して、データ ソース内の表示されているレコードを更新する更新操作で使用します。ItemUpdating イベントおよび ItemUpdated イベントを発生させます。 |
(表示されているレコードをすぐに削除する) Delete ボタンとは異なり、Edit ボタンまたは New ボタンをクリックすると、FormView コントロールが編集モード (Edit ボタンの場合) または挿入モード (New ボタンの場合) になります。編集モードでは、EditItemTemplate プロパティに格納されているコンテンツが現在のデータ項目に表示されます。一般的に、項目編集テンプレートは、Edit ボタンが Update ボタンと Cancel ボタンに置き換えられるように定義されます。通常は、フィールドのデータ型に適した入力コントロール (TextBox コントロールや CheckBox コントロールなど) も、ユーザーが変更するフィールドの値を設定した状態で表示されます。Update ボタンをクリックすると、データ ソースのレコードが更新され、Cancel ボタンをクリックすると、すべての変更が放棄されます。
同様に、コントロールが挿入モードの場合は、InsertItemTemplate プロパティに格納されているコンテンツがデータ項目用に表示されます。一般的に、項目挿入テンプレートは、New ボタンが Insert ボタンと Cancel ボタンに置き換えられるように定義され、新規レコードの値を入力するために空の入力コントロールがユーザーに表示されます。Insert ボタンをクリックするとデータ ソースにレコードが挿入され、Cancel ボタンをクリックするとすべての変更が放棄されます。
FormView コントロールには、ユーザーがデータ ソース内の他のレコードに移動できるページング機能が用意されています。この機能が有効になっている場合、ページ ナビゲーション コントロールを含む FormView コントロールにページ行が表示されます。ページングを有効にするには、AllowPaging プロパティを true に設定します。ページ行は、PagerStyle プロパティと PagerSettings プロパティに格納されているオブジェクトのプロパティを設定することによってカスタマイズできます。組み込みのページ行 UI を使用する代わりに、PagerTemplate プロパティを使用して、独自の UI を作成できます。
ユーザー インターフェイスのカスタマイズ
コントロールのさまざまな部分にスタイル プロパティを設定することによって、FormView コントロールの外観をカスタマイズできます。さまざまなスタイル プロパティの一覧を次の表に示します。
イベント
FormView コントロールには、プログラムに利用できる複数のイベントが用意されています。これにより、イベントが発生するたびにカスタム ルーチンが実行されるようにできます。FormView コントロールでサポートされるイベントの一覧を次の表に示します。
ユーザー補助
このコントロールに既定でレンダリングされるマークアップは、Web Content Accessibility Guidelines (WCAG) 1.0 の優先度 1 ガイドラインなどのユーザー補助に関する標準に適合しない可能性があります。このコントロールのユーザー補助サポートの詳細については、「ASP.NET コントロールとユーザー補助」を参照してください。

FormView コントロールを使用して、SqlDataSource コントロールから値を表示する方法を次の例に示します。
<%@ 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>
FormView コントロールを使用して既存のレコードを編集する方法を次の例に示します。
<%@ 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, FormViewModeEventArgs 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>
FormView コントロールを使用して新規レコードを挿入する方法を次の例に示します。
<%@ 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>


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.BaseDataBoundControl
System.Web.UI.WebControls.DataBoundControl
System.Web.UI.WebControls.CompositeDataBoundControl
System.Web.UI.WebControls.FormView


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


FormView メンバ
System.Web.UI.WebControls 名前空間
DetailsView クラス
GridView
FormViewRow
FormViewMode
AccessDataSource クラス
SqlDataSource
ObjectDataSource
AllowPaging
CurrentMode
DataKeyNames
DefaultMode
PagerStyle
PagerSettings
EditRowStyle
EmptyDataRowStyle
FooterStyle
HeaderStyle
InsertRowStyle
PagerStyle
RowStyle
EditItemTemplate
EmptyDataTemplate
FooterTemplate
HeaderTemplate
InsertItemTemplate
ItemTemplate
PagerTemplate
ItemCreated
ItemCommand
ItemDeleted
ItemDeleting
ItemInserted
ItemInserting
ItemUpdated
ItemUpdating
ModeChanged
ModeChanging
PageIndexChanged
PageIndexChanging
- FormView クラスのページへのリンク