2

我有一个按钮,我想在直接点击事件触发之前形成验证(客户端)。我尝试了很多方法但失败了。

** 我已经设置了这样的文本框。

 <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>
4

1 回答 1

3

有几个选项。

  1. 您可以从 DirectEvent 的 Before 处理程序或同一侦听器返回 false。

    protected void Submit(object sender, DirectEventArgs e) { X.Msg.Alert("Submit", "Submitted").Show(); }

    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>
    

  2. 另一种方法是使用FormBind。如果 FormPanel 无效,它会自动禁用组件。一个组件应该属于一个 FormPanel。

    protected void Submit(object sender, DirectEventArgs e) { X.Msg.Alert("Submit", "Submitted").Show(); }

    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>
    

  3. 您可以侦听 FormPanel 的ValidityChange事件以应用一些自定义操作。

于 2013-06-10T14:13:04.410 回答