我在.aspx文件如下:消防定製驗證之前處理其他代碼
<asp:CustomValidator
ID="JobIDCustomFieldValidator"
runat="server"
ControlToValidate="JobID"
OnServerValidate="jobIDCustom_ServerValidate"
EnableClientScript="false"
SetFocusOnError="true"
Display="Dynamic"
ErrorMessage="! - Not Found"
CssClass="validationError">
</asp:CustomValidator>
<br />
<asp:TextBox ID="JobID" runat="server"></asp:TextBox>
<asp:Button runat="server" ID="ProcessButton" Text="Process" onclick="ProcessButton_Click" />
在我的代碼,我有以下隱藏文件:
protected void ProcessButton_Click(object sender, EventArgs e)
{
Response.Write("I am in here");
}
protected void jobIDCustom_ServerValidate(object sender, ServerValidateEventArgs e)
{
// Impersonate a user for shared folder access.
using (UserImpersonation user = new UserImpersonation(properties.ShareUser, properties.Domain, properties.SharePassword))
{
e.IsValid = false;
// Check the user credentials.
if (user.ImpersonateValidUser())
{
e.IsValid = File.Exists(@"\\\\" + properties.RemoteServer + "\\" + properties.Share + "\\" + JobID.Text + ".dat");
}
}
}
我想自定義驗證到首先檢查,如果它是假停止,並且不運行ProcessButton_Click()方法中的任何代碼。這可能嗎?如果沒有,我可以設置它的另一種方法?
據我所知,我不能使用客戶端驗證與JavaScript做模擬和文件訪問。
任何幫助將不勝感激。
應該自動的CausesValidation = 「真正的」 做你的按鈕,對不對? –
@CjS。我向我的按鈕添加了CausesValidation =「true」,但當自定義驗證失敗並打印錯誤消息時,它仍然在ProcessButton_Click()中運行代碼。 – Baxter
如何添加Page.Validate();並在你的按鈕點擊處理程序中測試Page.IsValid? –