在datagrid中的<EditItemTemplate>和<FooterTemplate>中分别加上验证控件,怎么控制在点击更新的时候,<FooterTemplate>中的验证控件不起作用呢,大家有什么好的办法没有?

解决方案 »

  1.   

    有的
    <EditItemTemplate><FooterTemplate>中都有不能为空的验证控件
      

  2.   

    在我们对Datagrid进行编辑的时候,我们可能要对用户输入的数据进行验证,以确保数据的正确性、完整性。要解决这个问题有很多不同的方法,如:我们可以运用VS.NET当中的验证控件,如: RequiredFieldValidator 。这样我们便需要 DataGrid中的 Update 按钮引发验证来检验用户输入的数据是否为空。Update 按钮包含一个CausesValidation 属性。Public Property CausesValidation() As Boolean     成员属于: System.Web.UI.WebControls.LinkButton 摘要: 获取或设置一个值,该值指示在单击 System.Web.UI.WebControls.LinkButton 控件时是否执行验证。  我们可以利用这个属性来自由控制一个webcontrol是否引发验证。DataGrid ItemDataBound 事件:If (e.Item.ItemType = ListItemType.EditItem) ThensetUpdateCommandCausesValidation(e.Item, True)End IfPrivate Function setUpdateCommandCausesValidation(ByVal item As DataGridItem, ByVal valor As Boolean) As String        If (item.HasControls()) Then            For Each celula As Control In item.Controls                For Each possibleButton As Control In celula.Controls                    If (possibleButton.GetType().Name.Equals("DataGridLinkButton")) Then                        Dim lbt As LinkButton = CType(possibleButton, LinkButton)                        If (lbt.Text.Equals(getUpdateColumnText())) Then                            lbt.CausesValidation = valor                            Exit For                        End If                    End If                Next            Next        End If    End Function    Private Function getUpdateColumnText() As String        Dim text As String = ""        For Each coluna As DataGridColumn In DataGrid1.Columns            If (coluna.GetType().Name.Equals("EditCommandColumn")) Then                Dim colunaEdit As EditCommandColumn = CType(coluna, EditCommandColumn)                text = colunaEdit.UpdateText                Exit For            End If        Next        Return text    End Function
      

  3.   

    你在你的"保存"按钮,将该按钮的CausesValidation属性设置为false,就可以达到不验证的.