GridViewRow.DataItem プロパティ
アセンブリ: System.Web (system.web.dll 内)

/** @property */ public Object get_DataItem () /** @property */ public void set_DataItem (Object value)
GridViewRow オブジェクトのバインド先の基になるデータ オブジェクトを表す Object。

DataItem プロパティを使用して、GridViewRow オブジェクトのバインド先の基になるデータ オブジェクトのプロパティにアクセスします。DataItem プロパティは、GridView コントロールの RowDataBound イベントの発生中および発生後にしか使用できません。
![]() |
---|
Topic | Location |
---|---|
方法 : GridView Web サーバー コントロールの列幅を動的に設定する | ASP .NET Web アプリケーションの作成 |

DataItem プロパティを使用して、フィールド値を取得する方法の例を次に示します。その後、その値を使用して、行が編集モードのときに表示される DropDownList コントロールの項目が事前に選択されます。
<%@ Page language="VB" %> <%@ import namespace="System.Data" %> <script runat="server"> Sub AuthorsGridView_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs) ' Check for a row in edit mode. If e.Row.RowState = DataControlRowState.Edit Then ' Preselect the DropDownList control with the state value ' for the current row. ' Retrieve the underlying data item. In this example ' the underlying data item is a DataRowView object. Dim rowView As DataRowView = CType(e.Row.DataItem, DataRowView) ' Retrieve the state value for the current row. Dim state As String = rowView("state").ToString() ' Retrieve the DropDownList control from the current row. Dim list As DropDownList = CType(e.Row.FindControl("StatesList"), DropDownList) ' Find the ListItem object in the DropDownList control with the ' state value and select the item. Dim item As ListItem = list.Items.FindByText(state) list.SelectedIndex = list.Items.IndexOf(item) End If End Sub Sub AuthorsGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs) ' Retrieve the row being edited. Dim row As GridViewRow = AuthorsGridView.Rows(AuthorsGridView.EditIndex) ' Retrieve the DropDownList control from the row. Dim list As DropDownList = CType(row.FindControl("StatesList"), DropDownList) ' Add the selected value of the DropDownList control to ' the NewValues collection. The NewValues collection is ' passed to the data source control, which then updates the ' data source. e.NewValues("state") = list.SelectedValue End Sub </script> <html> <body> <form runat="server"> <h3>GridViewRow DataItem Example</h3> <asp:gridview id="AuthorsGridView" datasourceid="AuthorsSqlDataSource" autogeneratecolumns="false" autogenerateeditbutton="true" datakeynames="au_id" onrowdatabound="AuthorsGridView_RowDataBound" onrowupdating="AuthorsGridView_RowUpdating" runat="server"> <columns> <asp:boundfield datafield="au_lname" headertext="Last Name"/> <asp:boundfield datafield="au_fname" headertext="First Name"/> <asp:templatefield headertext="State"> <itemtemplate> <%#Eval("state")%> </itemtemplate> <edititemtemplate> <asp:dropdownlist id="StatesList" datasourceid="StatesSqlDataSource" datatextfield="state" runat="server"/> <asp:sqldatasource id="StatesSqlDataSource" selectcommand="SELECT Distinct [state] FROM [authors]" connectionstring="server=localhost;database=pubs;integrated security=SSPI" runat="server"> </asp:sqldatasource> </edititemtemplate> </asp:templatefield> </columns> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Pubs sample database. --> <asp:sqldatasource id="AuthorsSqlDataSource" selectcommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]" updatecommand="UPDATE authors SET [au_lname]=@au_lname, [au_fname]=@au_fname, [state]=@state WHERE au_id=@au_id" connectionstring="server=localhost;database=pubs;integrated security=SSPI" runat="server"> </asp:sqldatasource> </form> </body> </html>
<%@ Page language="C#" %> <%@ import namespace="System.Data" %> <script runat="server"> void AuthorsGridView_RowDataBound (Object sender, GridViewRowEventArgs e) { // Check for a row in edit mode. if(e.Row.RowState == DataControlRowState.Edit) { // Preselect the DropDownList control with the state value // for the current row. // Retrieve the underlying data item. In this example // the underlying data item is a DataRowView object. DataRowView rowView = (DataRowView)e.Row.DataItem; // Retrieve the state value for the current row. String state = rowView["state"].ToString(); // Retrieve the DropDownList control from the current row. DropDownList list = (DropDownList)e.Row.FindControl("StatesList"); // Find the ListItem object in the DropDownList control with the // state value and select the item. ListItem item = list.Items.FindByText(state); list.SelectedIndex = list.Items.IndexOf(item); } } void AuthorsGridView_RowUpdating(Object sender, GridViewUpdateEventArgs e) { // Retrieve the row being edited. GridViewRow row = AuthorsGridView.Rows[AuthorsGridView.EditIndex]; // Retrieve the DropDownList control from the row. DropDownList list = (DropDownList)row.FindControl("StatesList"); // Add the selected value of the DropDownList control to // the NewValues collection. The NewValues collection is // passed to the data source control, which then updates the // data source. e.NewValues["state"] = list.SelectedValue; } </script> <html> <body> <form runat="server"> <h3>GridViewRow DataItem Example</h3> <asp:gridview id="AuthorsGridView" datasourceid="AuthorsSqlDataSource" autogeneratecolumns="false" autogenerateeditbutton="true" datakeynames="au_id" onrowdatabound="AuthorsGridView_RowDataBound" onrowupdating="AuthorsGridView_RowUpdating" runat="server"> <columns> <asp:boundfield datafield="au_lname" headertext="Last Name"/> <asp:boundfield datafield="au_fname" headertext="First Name"/> <asp:templatefield headertext="State"> <itemtemplate> <%#Eval("state")%> </itemtemplate> <edititemtemplate> <asp:dropdownlist id="StatesList" datasourceid="StatesSqlDataSource" datatextfield="state" runat="server"/> <asp:sqldatasource id="StatesSqlDataSource" selectcommand="SELECT Distinct [state] FROM [authors]" connectionstring="server=localhost;database=pubs;integrated security=SSPI" runat="server"> </asp:sqldatasource> </edititemtemplate> </asp:templatefield> </columns> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Pubs sample database. --> <asp:sqldatasource id="AuthorsSqlDataSource" selectcommand="SELECT [au_id], [au_lname], [au_fname], [state] FROM [authors]" updatecommand="UPDATE authors SET [au_lname]=@au_lname, [au_fname]=@au_fname, [state]=@state WHERE au_id=@au_id" connectionstring="server=localhost;database=pubs;integrated security=SSPI" runat="server"> </asp:sqldatasource> </form> </body> </html>

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からGridViewRow.DataItem プロパティを検索する場合は、下記のリンクをクリックしてください。

- GridViewRow.DataItem プロパティのページへのリンク