我有一个按钮,我希望在直接点击事件之前形成验证(客户端)。我尝试了许多方法但失败了。
**我已经设置了这样的文本框。
<ext:TextField ID="Ad" runat="server" FieldLabel="Dem ad" Flex="1" AllowBlank="false" CausesValidation="true"> </ext:TextField>
但即使在文本框检查之前仍然直接启动
<ext:Button ID="Button1" runat="server" Text="save" Icon="Disk">
<DirectEvents>
<Click OnEvent="Dem">
<Confirmation ConfirmRequest="true" Title="Title" Message="are u sure you want to update..." />
</Click>
</DirectEvents>
</ext:Button>
答案 0 :(得分:3)
有几个选择。
您可以从DirectEvent的Before处理程序或同一个Listener中返回false。
protected void提交(对象发送者,DirectEventArgs e) { X.Msg.Alert(“提交”,“已提交”)。显示(); }Ext.NET v2示例
<ext:FormPanel ID="FormPanel1" runat="server">
<Items>
<ext:TextField runat="server" AllowBlank="false" />
</Items>
</ext:FormPanel>
<ext:Button runat="server" Text="Submit">
<%--<Listeners>
<Click Handler="return false;" /> it has the same effect as returning false from a DirectEvent's Before.
</Listeners>--%>
<DirectEvents>
<Click OnEvent="Submit" Before="return App.FormPanel1.isValid();" />
</DirectEvents>
</ext:Button>
</form>
另一种方法是使用FormBind。如果FormPanel无效,它会自动禁用组件。组件应属于FormPanel。
protected void提交(对象发送者,DirectEventArgs e) { X.Msg.Alert(“提交”,“已提交”)。显示(); }Ext.NET v2示例
<ext:FormPanel ID="FormPanel1" runat="server" Width="200">
<Items>
<ext:TextField runat="server" AllowBlank="false" />
</Items>
<Buttons>
<ext:Button runat="server" Text="Submit" FormBind="true">
<DirectEvents>
<Click OnEvent="Submit" />
</DirectEvents>
</ext:Button>
</Buttons>
</ext:FormPanel>
</form>
您可以收听FormPanel的ValidityChange事件以应用一些自定义操作。