CommandField.CausesValidation プロパティ

定義

ユーザーが CommandField フィールドのボタンをクリックしたときに検証が実行されるかどうかを示す値を取得または設定します。

public:
 virtual property bool CausesValidation { bool get(); void set(bool value); };
public override bool CausesValidation { get; set; }
member this.CausesValidation : bool with get, set
Public Overrides Property CausesValidation As Boolean

プロパティ値

ユーザーが CommandField フィールドのボタンをクリックしたときに検証を実行する場合は true。それ以外の場合は false。 既定値は、true です。

次のコード例では、 プロパティを使用 CausesValidation して、フィールド内のボタンがクリックされたときに検証が発生しないようにする方法を CommandField 示します。

重要

この例には、ユーザー入力を受け付けるテキスト ボックスがあります。これにより、セキュリティが脆弱になる可能性があります。 既定では、ASP.NET Web ページによって、ユーザー入力にスクリプトまたは HTML 要素が含まれていないかどうかが検証されます。 詳細については、「スクリプトによる攻略の概要」を参照してください。

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>CommandField CausesValidation Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>CommandField CausesValidation Example</h3>

      <!-- Normally, the validation controls declared in the            -->
      <!-- EditItemTemplate of each TemplateField field column would    -->
      <!-- prevent the user from leaving a field value empty; however,  -->
      <!-- because the CausesValidation property of the CommandField    -->
      <!-- field column is set to false, validation does not occur when -->
      <!-- the user clicks a button in the CommandField field column.   -->
      <asp:gridview id="CustomerGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="false"
        datakeynames="CustomerID"
        cellpadding="10"   
        runat="server">
                
        <columns>
        
          <asp:commandfield showeditbutton="true"
            causesvalidation="false"
            headertext="Edit"/> 
        
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"
            readonly="true"/>
            
          <asp:templatefield headertext="Company Name"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("CompanyName")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="CompanyNameTextBox"
                text='<%#Bind("CompanyName")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="CompanyNameRequiredValidator"
                controltovalidate="CompanyNameTextBox"
                display="Dynamic"
                text="Please enter the company name." 
                runat="server"/>                                      
            </edititemtemplate>
            
          </asp:templatefield>
          
          <asp:templatefield headertext="Address"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("Address")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="AddressTextBox"
                text='<%#Bind("Address")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="AddressRequiredValidator"
                controltovalidate="AddressTextBox"
                display="Dynamic"
                text="Please enter the address."
                runat="server"/>                      
            </edititemtemplate>
            
          </asp:templatefield>
          
          <asp:templatefield headertext="City"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("City")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="CityTextBox"
                text='<%#Bind("City")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="CityRequiredValidator"
                controltovalidate="CityTextBox"
                display="Dynamic"
                text="Please enter the city."
                runat="server"/>                      
            </edititemtemplate>
            
          </asp:templatefield>
            
        </columns>
                
      </asp:gridview>
            
      <!-- 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="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City] From [Customers]"             
        updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City Where [CustomerID] = @CustomerID" 
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        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">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>CommandField CausesValidation Example</title>
</head>
<body>
    <form id="form1" runat="server">
        
      <h3>CommandField CausesValidation Example</h3>

      <!-- Normally, the validation controls declared in the            -->
      <!-- EditItemTemplate of each TemplateField field column would    -->
      <!-- prevent the user from leaving a field value empty; however,  -->
      <!-- because the CausesValidation property of the CommandField    -->
      <!-- field column is set to false, validation does not occur when -->
      <!-- the user clicks a button in the CommandField field column.   -->
      <asp:gridview id="CustomerGridView" 
        datasourceid="CustomersSqlDataSource" 
        autogeneratecolumns="false"
        datakeynames="CustomerID"
        cellpadding="10"   
        runat="server">
                
        <columns>
        
          <asp:commandfield showeditbutton="true"
            causesvalidation="false"
            headertext="Edit"/> 
        
          <asp:boundfield datafield="CustomerID"
            headertext="Customer ID"
            readonly="true"/>
            
          <asp:templatefield headertext="Company Name"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("CompanyName")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="CompanyNameTextBox"
                text='<%#Bind("CompanyName")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="CompanyNameRequiredValidator"
                controltovalidate="CompanyNameTextBox"
                display="Dynamic"
                text="Please enter the company name." 
                runat="server"/>                                      
            </edititemtemplate>
            
          </asp:templatefield>
          
          <asp:templatefield headertext="Address"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("Address")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="AddressTextBox"
                text='<%#Bind("Address")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="AddressRequiredValidator"
                controltovalidate="AddressTextBox"
                display="Dynamic"
                text="Please enter the address."
                runat="server"/>                      
            </edititemtemplate>
            
          </asp:templatefield>
          
          <asp:templatefield headertext="City"
            itemstyle-verticalalign="Top">
            
            <itemtemplate>
              <%#Eval("City")%>
            </itemtemplate>
            
            <edititemtemplate>
              <asp:textbox id="CityTextBox"
                text='<%#Bind("City")%>'
                width="90"
                runat="server"/>
              <br/>
              <asp:requiredfieldvalidator id="CityRequiredValidator"
                controltovalidate="CityTextBox"
                display="Dynamic"
                text="Please enter the city."
                runat="server"/>                      
            </edititemtemplate>
            
          </asp:templatefield>
            
        </columns>
                
      </asp:gridview>
            
      <!-- 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="CustomersSqlDataSource"  
        selectcommand="Select [CustomerID], [CompanyName], [Address], [City] From [Customers]"             
        updatecommand="Update [Customers] Set [CompanyName]=@CompanyName, [Address]=@Address, [City]=@City Where [CustomerID] = @CustomerID" 
        connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
        runat="server">
      </asp:sqldatasource>
            
    </form>
  </body>
</html>

注釈

フィールド内の CausesValidation ボタンがクリックされたときに検証を実行するかどうかを指定するには、 プロパティを CommandField 使用します。 このプロパティが に true設定されている場合、既定では、ページ上のすべての検証コントロールが検証されます。 検証を検証コントロールの特定のグループのみに制限するには、検証グループを作成し、 プロパティを ValidationGroup 検証グループの名前に設定します。 検証グループの詳細については、「」を参照してください BaseValidator.ValidationGroup

適用対象

こちらもご覧ください