我有一個綁定到GridView的ObjectDataSource。該對象接受來自TextBox的參數。我遇到的問題是,當我使用帶有ServerValidate事件的CustomerValidator時,儘管客戶驗證器已返回false,但ObjectDataSource仍會嘗試執行DataBind。ObjectDataSource,CustomValidators和DataBinding
以下是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">
在自定義驗證我有
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);
}
如何從數據在驗證失敗結合停止ObjectDataSource控件?
謝謝,這有很大的幫助。然而,在我的情況,因爲我正在做一個類型轉換檢查,我需要修改 否則,當輸入無效數據時,會在調用BatchDataSource_Selecting事件之前拋出一個類型異常。 –