J'ai une ObjectDataSource qui est liée à un GridView. L'objet accepte un paramètre d'un TextBox. Le problème que j'ai est quand j'utilise un CustomerValidator avec un événement ServerValidate, l'ObjectDataSource essaierait toujours d'exécuter un DataBind malgré le fait que le validateur client a renvoyé false.ObjectDataSource, CustomValidators et DataBinding
Ce qui suit est le code dans la page ASPX.
<asp:TextBox ID="sittingDate" runat="server" />
<asp:CustomValidator ID="DateValidator" runat="server" ControlToValidate="sittingDate" OnServerValidate="DateValidator_ServerValidate" />
<asp:ObjectDataSource ID="BatchDataSource" runat="server" OldValuesParameterFormatString="original_{0}"
SelectMethod="GetOrCreateSittingBatch" TypeName="BatchBLL" OnSelected="BatchDataSource_Selected" OnSelecting="BatchDataSource_Selecting">
<SelectParameters>
<asp:ControlParameter ControlID="sittingDate" Name="batchDate" PropertyName="Text"
Type="DateTime" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:GridView ID="BatchGridView" runat="server" DataSourceID="BatchDataSource">
Dans la mesure Validator je
protected void DateValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
//Ensure that the entered data is a date.
string input = args.Value;
DateTime result;
args.IsValid = DateTime.TryParse(input.TrimEnd(), out result);
}
Comment puis-je arrêter la ObjectDataSource de liaison de données lors de la validation a échoué?
Merci cela a beaucoup aidé. Cependant dans ma situation puisque je faisais un contrôle de conversion de type, j'ai dû modifier le paramètre select de à sinon, lorsque des données non valides étaient entrées, une exception de type était levée avant l'appel de l'événement BatchDataSource_Selecting. –