0

次のように定義された画像ボタンがあります、

<div>
    <asp:ImageButton ID="btn1" runat="server" ImageUrl="/_LAYOUTS/1033/IMAGES/row.png" />
</div>
<div>
    <asp:RequiredFieldValidator runat="server" ID="reqName" ControlToValidate="txtUserEmail" validationGroup="Page"
        ErrorMessage="enter a email" />
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
        ControlToValidate="txtUserEmail" ErrorMessage="enter a email">  
    </asp:RegularExpressionValidator>
</div>

今どこかでアップデートパネルを手に入れました、

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <div> // with controls in it that do some calculations without post back

問題は、ユーザーコントロールが読み込まれたときに、計算して更新パネルのボタンを押しようとすると、テキストボックスが空かどうかをチェックし、入力すると、発生してはならない電子メールエラーが表示されることです。

バリデーターに追加validationGroup="Page"すると機能しますが、電子メールのテキストボックスが空かどうかはチェックされません。

また、追加するとEnableClientScript=False、パネルの更新は機能しますが、電子メールのテキストボックスが検証されないようです。

4

1 に答える 1

0

バリデーターに追加する場合ValidationGroup="Page"は、関連するボタンと入力コントロールにも追加する必要があります。そうしないと、バリデーターは独自のグループになり、検証するものは何もありません。

<div>
    <asp:ImageButton ID="btn1" runat="server" ImageUrl="/_LAYOUTS/1033/IMAGES/row.png" ValidationGroup="Page" />
</div>
<div>
    <asp:RequiredFieldValidator runat="server" ID="reqName" ControlToValidate="txtUserEmail" ValidationGroup="Page" ErrorMessage="enter a email" />
    <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationExpression="^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$" ControlToValidate="txtUserEmail" ValidationGroup="Page" ErrorMessage="enter a email" />
</div>
于 2012-11-23T14:09:26.333 に答える