ButtonFieldBase.CausesValidation Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau menetapkan nilai yang menunjukkan apakah validasi dilakukan saat tombol dalam objek diklik ButtonFieldBase .
public:
virtual property bool CausesValidation { bool get(); void set(bool value); };
public virtual bool CausesValidation { get; set; }
member this.CausesValidation : bool with get, set
Public Overridable Property CausesValidation As Boolean
Nilai Properti
true untuk melakukan validasi saat tombol dalam diklik ButtonFieldBase ; jika tidak, false. Defaultnya adalah false.
Contoh
Contoh kode berikut menunjukkan cara menggunakan CausesValidation properti untuk melakukan validasi saat tombol diklik dalam ButtonField objek GridView kontrol.
<%@ 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>
<%@ Page language="VB" %>
<script runat="server">
Sub AuthorsGridView_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
' If multiple ButtonField columns are used, use the
' CommandName property to determine which button was clicked.
Select Case e.CommandName
Case "Edit"
AuthorsGridView.Columns(0).Visible = False
AuthorsGridView.Columns(1).Visible = True
Case "Update"
AuthorsGridView.Columns(0).Visible = True
AuthorsGridView.Columns(1).Visible = False
Case Else
' Do nothing.
End Select
End Sub
Sub AuthorsGridView_RowUpdating(ByVal sender As Object, ByVal e As GridViewUpdateEventArgs)
' Retrieve the row being edited.
Dim index As Integer = AuthorsGridView.EditIndex
Dim row As GridViewRow = 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.
Dim firstNameTextBox As TextBox = CType(row.Cells(1).FindControl("FirstNameTextBox"), TextBox)
' Make sure the control was found.
Dim firstName As String = ""
If Not firstNameTextBox Is Nothing Then
firstName = firstNameTextBox.Text
End If
' 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).
Dim lastNameTextBox As TextBox = CType(row.Cells(2).FindControl("LastNameTextBox"), TextBox)
Dim lastName As String = ""
If Not lastNameTextBox Is Nothing Then
lastName = lastNameTextBox.Text
End If
' 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.
Dim lastNameParameter As New Parameter("au_lname", TypeCode.String, lastName)
Dim firstNameParameter As 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)
End Sub
</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>
Keterangan
Grup validasi memungkinkan Anda menetapkan kontrol validasi pada halaman ke kategori tertentu. Setiap grup validasi dapat divalidasi secara independen dari grup validasi lain di halaman. ValidationGroup Gunakan properti untuk menentukan nama grup validasi yang ButtonFieldBase objeknya menyebabkan validasi saat memposting kembali ke server.
Properti ValidationGroup hanya memiliki efek ketika nilai CausesValidation properti diatur ke true. Saat Anda menentukan nilai untuk ValidationGroup properti , hanya kontrol validasi yang merupakan bagian dari grup yang ditentukan yang divalidasi saat ButtonFieldBase posting kembali ke server. Jika Anda tidak menentukan nilai untuk ValidationGroup properti dan CausesValidation properti diatur ke true, semua kontrol validasi pada halaman yang tidak ditetapkan ke grup validasi divalidasi ketika ButtonFieldBase posting kembali ke server.
Nilai properti ini disimpan dalam status tampilan.