代码:
- C# code
<dx:ASPxTextBox ID="ASPxTextBox1" runat="server" Width="99%" CssFilePath="~/App_Themes/Aqua/{0}/styles.css" CssPostfix="Aqua" SpriteCssFilePath="~/App_Themes/Aqua/{0}/sprite.css" ClientInstanceName="ASPxTextBox1"> <ValidationSettings Display="Dynamic"> <ErrorFrameStyle ImageSpacing="4px"> <ErrorTextPaddings PaddingLeft="4px" /> </ErrorFrameStyle> <RequiredField IsRequired="True" /> </ValidationSettings> </dx:ASPxTextBox><dx:ASPxButton ID="btnUpload" runat="server" AutoPostBack="False" Text="提交" ClientInstanceName="btnUpload" CssFilePath="~/App_Themes/Aqua/{0}/styles.css" CssPostfix="Aqua" SpriteCssFilePath="~/App_Themes/Aqua/{0}/sprite.css"> <ClientSideEvents Click="function(s, e) { UploadControl.Upload(); }" /> </dx:ASPxButton>
页面上的ASPxTextBox添加了验证功能,不能为空。
ASPxButton设置了AutoPostBack="False",Click事件为UploadControl.Upload(); ,这个事件是执行页面上的一个UploadControl控件开始上传图片,实际应用中,单击提交按钮后,页面不管ASPxTextBox是否经过了验证都会执行上传操作,怎么才能单击按钮后,先判断页面上的其他控件是否经过了验证,然后再执行UploadControl.Upload();方法..
需要说明的是UploadControl控件添加了一些上传效果,弹出遮罩显示上传进度,所以才把ASPxButton设置了AutoPostBack="False"。。。
ASPxButton的Click事件改成 if(e.IsValid){ UploadControl.Upload(); }后还是不行。。
但是把ASPxButton设置了AutoPostBack="true",Click事件改成 if(e.IsValid){ UploadControl.Upload(); } 这样就可以了,但这样美中不足的是没有了上传效果。。。
先谢谢了。
------解决方案--------------------------------------------------------
<dxe:aspxtextbox id="txtnum" ClientInstanceName="txtnum" runat="server" cssfilepath="~/App_Themes/Glass/{0}/styles.css"
csspostfix="Glass" width="170px" EnableClientSideAPI="True">
<ValidationSettings ValidationGroup="stock">
<ErrorImage Url="~/App_Themes/Glass/Editors/edtError.png"></ErrorImage>
<ErrorFrameStyle ImageSpacing="4px">
<ErrorTextPaddings PaddingLeft="4px"></ErrorTextPaddings>
</ErrorFrameStyle>
<RequiredField IsRequired="True" />
<RegularExpression ErrorText="只能是整数" ValidationExpression="^-?/d+$" />
</ValidationSettings>
</dxe:aspxtextbox>
当提交给服务器的时候可以
if(ASPxClientEdit.ValidateGroup("ValidateGroup的名称"))
{
//调用
callbackPanel.PerformCallback();
}