GridViewRow.RowState Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the state of the GridViewRow object.
public:
virtual property System::Web::UI::WebControls::DataControlRowState RowState { System::Web::UI::WebControls::DataControlRowState get(); void set(System::Web::UI::WebControls::DataControlRowState value); };
public virtual System.Web.UI.WebControls.DataControlRowState RowState { get; set; }
member this.RowState : System.Web.UI.WebControls.DataControlRowState with get, set
Public Overridable Property RowState As DataControlRowState
Property Value
A bitwise combination of the DataControlRowState values.
Examples
The following example demonstrates how to use the RowState property to determine whether a row is in edit mode or is selected. If the user selects a different row while the GridView control is in edit mode, the GridView control exits edit mode.
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void AuthorsGridView_SelectedIndexChanged(Object sender, EventArgs e)
{
// Get the selected row.
GridViewRow row = AuthorsGridView.SelectedRow;
// Check the row state. If the row is not in edit mode and is selected,
// exit edit mode. This ensures that the GridView control exits edit mode
// when a user selects a different row while the GridView control is in
// edit mode. Notice that the DataControlRowState enumeration is a flag
// enumeration, which means that you can combine values using bitwise
// operations.
if(row.RowState != (DataControlRowState.Edit|DataControlRowState.Selected))
{
AuthorsGridView.EditIndex = -1;
}
}
void AuthorsGridView_RowEditing(Object sender, GridViewEditEventArgs e)
{
// Get the row being edited.
GridViewRow row = AuthorsGridView.Rows[e.NewEditIndex];
// Check the row state. If the row is not in edit mode and is selected,
// select the current row. This ensures that the GridView control selects
// the current row when the user clicks the Edit button.
if(row.RowState != (DataControlRowState.Edit|DataControlRowState.Selected))
{
AuthorsGridView.SelectedIndex = e.NewEditIndex;
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewRow RowState Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewRow RowState Example</h3>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames attribute as read-only -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="AuthorsGridView"
datasourceid="AuthorsSqlDataSource"
autogeneratecolumns="false"
autogenerateeditbutton="true"
autogenerateselectbutton="true"
datakeynames="au_id"
cellpadding="10"
onselectedindexchanged="AuthorsGridView_SelectedIndexChanged"
onrowediting="AuthorsGridView_RowEditing"
runat="server">
<selectedrowstyle backcolor="Yellow"/>
<columns>
<asp:boundfield datafield="au_lname"
headertext="Last Name"/>
<asp:boundfield datafield="au_fname"
headertext="First Name"/>
</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] FROM [authors]"
updatecommand="UPDATE authors SET au_lname=@au_lname, au_fname=@au_fname WHERE (authors.au_id = @au_id)"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub AuthorsGridView_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
' Get the selected row.
Dim row As GridViewRow = AuthorsGridView.SelectedRow
' Check the row state. If the row is not in edit mode and is selected,
' exit edit mode. This ensures that the GridView control exits edit mode
' when a user selects a different row while the GridView control is in
' edit mode. Notice that the DataControlRowState enumeration is a flag
' enumeration, which means that you can combine values using bitwise
' operations.
If row.RowState <> (DataControlRowState.Edit Or DataControlRowState.Selected) Then
AuthorsGridView.EditIndex = -1
End If
End Sub
Sub AuthorsGridView_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
' Get the row being edited.
Dim row As GridViewRow = AuthorsGridView.Rows(e.NewEditIndex)
' Check the row state. If the row is not in edit mode and is selected,
' select the current row. This ensures that the GridView control selects
' the current row when the user clicks the Edit button.
If row.RowState <> (DataControlRowState.Edit Or DataControlRowState.Selected) Then
AuthorsGridView.SelectedIndex = e.NewEditIndex
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>GridViewRow RowState Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>GridViewRow RowState Example</h3>
<!-- The GridView control automatically sets the columns -->
<!-- specified in the datakeynames attribute as read-only -->
<!-- No input controls are rendered for these columns in -->
<!-- edit mode. -->
<asp:gridview id="AuthorsGridView"
datasourceid="AuthorsSqlDataSource"
autogeneratecolumns="false"
autogenerateeditbutton="true"
autogenerateselectbutton="true"
datakeynames="au_id"
cellpadding="10"
onselectedindexchanged="AuthorsGridView_SelectedIndexChanged"
onrowediting="AuthorsGridView_RowEditing"
runat="server">
<selectedrowstyle backcolor="Yellow"/>
<columns>
<asp:boundfield datafield="au_lname"
headertext="Last Name"/>
<asp:boundfield datafield="au_fname"
headertext="First Name"/>
</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] FROM [authors]"
updatecommand="UPDATE authors SET au_lname=@au_lname, au_fname=@au_fname WHERE (authors.au_id = @au_id)"
connectionstring="server=localhost;database=pubs;integrated security=SSPI"
runat="server">
</asp:sqldatasource>
</form>
</body>
</html>
Remarks
Use the RowType property to determine the state of the GridViewRow object. The state can be a bitwise combination of the values in the following table:
Status value | Description |
---|---|
DataControlRowState.Alternate |
The GridViewRow object is an alternate row in the GridView control. |
DataControlRowState.Edit |
The GridViewRow object is in edit mode. |
DataControlRowState.Normal |
The GridViewRow object is in its normal (default) state. |
DataControlRowState.Selected |
The GridViewRow object is selected. |
This property is commonly used to determine the state of a row before performing an operation.