Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

ButtonFieldBase.CausesValidation Property

Gets or sets a value indicating whether validation is performed when a button in a ButtonFieldBase object is clicked.

Namespace:  System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)
public virtual bool CausesValidation { get; set; }

Property Value

Type: System.Boolean
true to perform validation when a button in a ButtonFieldBase is clicked; otherwise, false. The default is false.

Validation groups allow you to assign validation controls on a page to a specific category. Each validation group can be validated independently of other validation groups on the page. Use the ValidationGroup property to specify the name of the validation group for which the ButtonFieldBase object causes validation when it posts back to the server.

The ValidationGroup property has an effect only when the value of the CausesValidation property is set to true. When you specify a value for the ValidationGroup property, only the validation controls that are part of the specified group are validated when the ButtonFieldBase posts back to the server. If you do not specify a value for the ValidationGroup property and the CausesValidation property is set to true, all validation controls on the page that are not assigned to a validation group are validated when the ButtonFieldBase posts back to the server.

The value of this property is stored in view state.

The following code example demonstrates how to use the CausesValidation property to perform validation when the button is clicked in the ButtonField object of a GridView control.

<%@ Page language="C#" %>

<script runat="server">

  void AuthorsGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
  {

    // If multiple ButtonField columns are used, use the
    // CommandName property to determine which button was clicked.
    switch(e.CommandName)
    {

      case "Edit":
        AuthorsGridView.Columns[0].Visible = false;
        AuthorsGridView.Columns[1].Visible = true;
        break;
      case "Update":
        AuthorsGridView.Columns[0].Visible = true;
        AuthorsGridView.Columns[1].Visible = false;
        break;
      default:
        // Do nothing.
        break;
    }

  }

  void AuthorsGridView_RowUpdating (Object sender, GridViewUpdateEventArgs e)
  {

    // Retrieve the row being edited.    
    int index = AuthorsGridView.EditIndex;
    GridViewRow row = AuthorsGridView.Rows[index];

    // Retrieve the new value for the author's first name from the row. 
    // In this example, the author's first name is in the second cell 
    // of the row (index 1). To get the value, first retrieve the TextBox
    // that contains the value.
    TextBox firstNameTextBox = (TextBox)row.Cells[1].FindControl("FirstNameTextBox");

    // Make sure the control was found. 
    String firstName = "";    
    if(firstNameTextBox != null)
    {
      firstName = firstNameTextBox.Text;
    }

    // Retrieve the new value for the author's last name from the row. 
    // In this example, the author's last name is in the third cell 
    // of the row (index 2).
    TextBox lastNameTextBox = (TextBox)row.Cells[2].FindControl("LastNameTextBox");

    String lastName = "";
    if(lastNameTextBox != null)
    {
      lastName = lastNameTextBox.Text;
    }

    // Because custom TemplateField field columns are used, parameters 
    // are not automatically created and passed to the data source control.
    // Create Parameter objects to represent the fields to update and 
    // add the Parameter objects to the UpdateParameters collection.
    Parameter lastNameParameter = new Parameter("au_lname", TypeCode.String, lastName);   
    Parameter firstNameParameter = new Parameter("au_fname", TypeCode.String, firstName);

    // Clear the UpdateParameters collection before adding the 
    // Parameter objects. Otherwise, there will be duplicate
    // parameters.
    AuthorsSqlDataSource.UpdateParameters.Clear();
    AuthorsSqlDataSource.UpdateParameters.Add(lastNameParameter);
    AuthorsSqlDataSource.UpdateParameters.Add(firstNameParameter);

  }

</script>

<head runat="server">
    <title>ButtonFieldBase CausesValidation Example</title>
</head>
<body>
  <form id="form1" runat="server">
  <div>

    <h3>ButtonFieldBase CausesValidation Example</h3>

    <!-- Populate the Columns collection declaratively. -->
    <asp:gridview id="AuthorsGridView" 
      datasourceid="AuthorsSqlDataSource"
      cellpadding="5"  
      autogeneratecolumns="false"
      datakeynames="au_id" 
      onrowcommand="AuthorsGridView_RowCommand"
      onrowupdating="AuthorsGridView_RowUpdating"  
      runat="server">

      <columns>
        <asp:buttonfield commandname="Edit"
          causesvalidation="false" 
          text="Edit" 
          headertext="Edit Author">
        </asp:buttonfield>

        <asp:buttonfield commandname="Update" 
          visible="false" 
          causesvalidation="true" 
          text="Update"
          validationgroup="NameGroup" 
          headertext="Update Author">
        </asp:buttonfield>

        <asp:templatefield headertext="Last Name">
          <itemtemplate>
            <%# Eval("au_lname") %>
          </itemtemplate>

          <edititemtemplate>
            <asp:textbox id="LastNameTextBox"
              text='<%# Eval("au_lname") %>'
              width="175" 
              runat="server" /><br />  

            <asp:RequiredFieldValidator ID="LastNameRequiredValidator"
              ControlToValidate="LastNameTextBox"
              ErrorMessage="Please enter a last name."
              ValidationGroup="NameGroup" 
              Runat="server" />

          </edititemtemplate>
        </asp:templatefield>

        <asp:templatefield headertext="First Name">
          <itemtemplate>
            <%# Eval("au_fname") %>
          </itemtemplate>

          <edititemtemplate>
            <asp:textbox id="FirstNameTextBox"
              text='<%# Eval("au_fname") %>'
              width="175" 
              runat="server" /><br />  

            <asp:RequiredFieldValidator ID="FirstNameRequiredValidator"
              ControlToValidate="FirstNameTextBox"
              ErrorMessage="Please enter a first name."
              ValidationGroup="NameGroup" 
              Runat="server" />

          </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] 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>

  </div>
  </form>
</body>
</html>

.NET Framework

Supported in: 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.